Package org.aoju.bus.core.toolkit
Class RuntimeKit
java.lang.Object
org.aoju.bus.core.toolkit.RuntimeKit
系统运行时工具类
用于执行系统命令的工具
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddShutdownHook(Runnable hook) 增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作static <T extends Throwable>
TconvertFromOrSuppressedThrowable(Throwable throwable, Class<T> exceptionClass) 转化指定异常为来自或者包含指定异常static <T extends Throwable>
TconvertFromOrSuppressedThrowable(Throwable throwable, Class<T> exceptionClass, boolean checkCause) 转化指定异常为来自或者包含指定异常static void销毁进程static Process执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入static Process执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入static Process执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入execForLines(String... cmds) 执行系统命令,使用系统默认编码execForLines(Charset charset, String... cmds) 执行系统命令,使用传入的charset编码static StringexecForStr(String... cmds) 执行系统命令,使用系统默认编码static StringexecForStr(Charset charset, String... cmds) 执行系统命令,使用传入的charset编码static ThrowablegetCausedBy(Throwable throwable, Class<? extends Exception>... causeClasses) 获取由指定异常类引起的异常static StringgetErrorResult(Process process) 获取命令执行异常结果,使用系统默认编码,,获取后销毁进程static StringgetErrorResult(Process process, Charset charset) 获取命令执行异常结果,获取后销毁进程static String获得完整消息,包括异常名,消息格式为:{SimpleClassName}: {ThrowableMessage}static intgetPid()获得当前进程的PID 当失败时返回-1static String获取命令执行结果,使用系统默认编码,获取后销毁进程static String获取命令执行结果,获取后销毁进程getResultLines(Process process) 获取命令执行结果,使用系统默认编码,获取后销毁进程getResultLines(Process process, Charset charset) 获取命令执行结果,使用传入的charset编码,获取后销毁进程static ThrowablegetRootCause(Throwable throwable) 获取异常链中最尾端的异常,即异常最早发生的异常对象 此方法通过调用Throwable.getCause()直到没有cause为止,如果异常本身没有cause,返回异常本身 传入null返回也为nullstatic String获取异常链中最尾端的异常的消息, 消息格式为:{SimpleClassName}: {ThrowableMessage}static StackTraceElement获取入口堆栈信息static String获得消息,调用异常类的getMessage方法static StackTraceElementgetStackElement(int layers) 获取指定层的堆栈信息static StackTraceElementgetStackElement(String fqcn, int layers) 获取指定层的堆栈信息static StackTraceElement[]获取当前栈信息static StringgetStackTrace(Throwable throwable) 堆栈转为完整字符串static StringgetStackTrace(Throwable throwable, int limit) 堆栈转为完整字符串static StringgetStackTrace(Throwable throwable, int limit, Map<Character, String> replaceCharToStrMap) 堆栈转为完整字符串static StringgetStackTraceOneLine(Throwable throwable) 堆栈转为单行完整字符串static StringgetStackTraceOneLine(Throwable throwable, int limit) 堆栈转为单行完整字符串getThrowableList(Throwable throwable) 获取异常链上所有异常的集合,如果Throwable对象没有cause,返回只有一个节点的List 如果传入null,返回空集合static long返回应用启动到现在的毫秒数static String返回输入的JVM参数列表static booleanisCausedBy(Throwable throwable, Class<? extends Exception>... causeClasses) 判断是否由指定异常类引起static booleanisFromOrSuppressedThrowable(Throwable throwable, Class<? extends Throwable> exceptionClass) 判断指定异常是否来自或者包含指定异常static booleanisFromOrSuppressedThrowable(Throwable throwable, Class<? extends Throwable> exceptionClass, boolean checkCause) 判断指定异常是否来自或者包含指定异常static Throwable剥离反射引发的InvocationTargetException、 UndeclaredThrowableException中间异常,返回业务本身的异常static <T extends Throwable>
T包装一个异常static voidwrapAndThrow(Throwable throwable) static RuntimeExceptionwrapRuntime(String message) 将指定的消息包装为运行时异常static RuntimeExceptionwrapRuntime(Throwable throwable) 使用运行时异常包装编译异常 如果传入参数已经是运行时异常,则直接返回,不再额外包装static voidwrapRuntimeAndThrow(String message) 将消息包装为运行时异常并抛出
-
Constructor Details
-
RuntimeKit
public RuntimeKit()
-
-
Method Details
-
execForStr
执行系统命令,使用系统默认编码- Parameters:
cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果
- Throws:
InstrumentException- IO异常
-
execForStr
执行系统命令,使用传入的charset编码- Parameters:
charset- 编码cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果
- Throws:
InstrumentException- 内部处理异常
-
execForLines
执行系统命令,使用系统默认编码- Parameters:
cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果, 按行区分
- Throws:
InstrumentException- 内部处理异常
-
execForLines
执行系统命令,使用传入的charset编码- Parameters:
charset- 编码cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果, 按行区分
- Throws:
InstrumentException- 内部处理异常
-
exec
执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入- Parameters:
cmds- 命令- Returns:
Process
-
exec
执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入- Parameters:
envp- 环境变量参数,传入形式为key=value,null表示继承系统环境变量cmds- 命令- Returns:
Process
-
exec
执行命令 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入- Parameters:
envp- 环境变量参数,传入形式为key=value,null表示继承系统环境变量dir- 执行命令所在目录(用于相对路径命令执行),null表示使用当前进程执行的目录cmds- 命令- Returns:
Process
-
getResultLines
获取命令执行结果,使用系统默认编码,获取后销毁进程- Parameters:
process-Process进程- Returns:
- 命令执行结果列表
-
getResultLines
获取命令执行结果,使用传入的charset编码,获取后销毁进程- Parameters:
process-Process进程charset- 编码- Returns:
- 命令执行结果列表
-
getResult
获取命令执行结果,使用系统默认编码,获取后销毁进程- Parameters:
process-Process进程- Returns:
- 命令执行结果列表
-
getResult
获取命令执行结果,获取后销毁进程- Parameters:
process-Process进程charset- 编码- Returns:
- 命令执行结果列表
-
getErrorResult
获取命令执行异常结果,使用系统默认编码,,获取后销毁进程- Parameters:
process-Process进程- Returns:
- 命令执行结果列表
-
getErrorResult
获取命令执行异常结果,获取后销毁进程- Parameters:
process-Process进程charset- 编码- Returns:
- 命令执行结果列表
-
destroy
销毁进程- Parameters:
process- 进程
-
addShutdownHook
增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作- Parameters:
hook- 钩子
-
getPid
public static int getPid()获得当前进程的PID 当失败时返回-1- Returns:
- the int
-
getUpTime
public static long getUpTime()返回应用启动到现在的毫秒数- Returns:
- the long
-
getVmArguments
返回输入的JVM参数列表- Returns:
- the string
-
getMessage
获得完整消息,包括异常名,消息格式为:{SimpleClassName}: {ThrowableMessage}- Parameters:
e- 异常- Returns:
- 完整消息
-
getSimpleMessage
获得消息,调用异常类的getMessage方法- Parameters:
e- 异常- Returns:
- 消息
-
wrapRuntime
使用运行时异常包装编译异常 如果传入参数已经是运行时异常,则直接返回,不再额外包装- Parameters:
throwable- 异常- Returns:
- 运行时异常
-
wrapRuntime
将指定的消息包装为运行时异常- Parameters:
message- 异常消息- Returns:
- 运行时异常
-
wrap
包装一个异常- Type Parameters:
T- 被包装的异常类型- Parameters:
throwable- 异常wrapThrowable- 包装后的异常类- Returns:
- 包装后的异常
-
wrapAndThrow
- Parameters:
throwable- 异常
-
wrapRuntimeAndThrow
将消息包装为运行时异常并抛出- Parameters:
message- 异常消息
-
unwrap
剥离反射引发的InvocationTargetException、 UndeclaredThrowableException中间异常,返回业务本身的异常- Parameters:
wrapped- 包装的异常- Returns:
- 剥离后的异常
-
getStackElements
获取当前栈信息- Returns:
- 当前栈信息
-
getStackElement
获取指定层的堆栈信息- Parameters:
layers- 堆栈层级- Returns:
- 指定层的堆栈信息
-
getStackElement
获取指定层的堆栈信息- Parameters:
fqcn- 指定类名为基础layers- 指定类名的类堆栈相对层数- Returns:
- 指定层的堆栈信息
-
getRootStackElement
获取入口堆栈信息- Returns:
- 入口堆栈信息
-
getStackTraceOneLine
堆栈转为单行完整字符串- Parameters:
throwable- 异常对象- Returns:
- 堆栈转为的字符串
-
getStackTraceOneLine
堆栈转为单行完整字符串- Parameters:
throwable- 异常对象limit- 限制最大长度- Returns:
- 堆栈转为的字符串
-
getStackTrace
堆栈转为完整字符串- Parameters:
throwable- 异常对象- Returns:
- 堆栈转为的字符串
-
getStackTrace
堆栈转为完整字符串- Parameters:
throwable- 异常对象limit- 限制最大长度- Returns:
- 堆栈转为的字符串
-
getStackTrace
public static String getStackTrace(Throwable throwable, int limit, Map<Character, String> replaceCharToStrMap) 堆栈转为完整字符串- Parameters:
throwable- 异常对象limit- 限制最大长度,>0表示不限制长度replaceCharToStrMap- 替换字符为指定字符串- Returns:
- 堆栈转为的字符串
-
isCausedBy
判断是否由指定异常类引起- Parameters:
throwable- 异常causeClasses- 定义的引起异常的类- Returns:
- 是否由指定异常类引起
-
getCausedBy
public static Throwable getCausedBy(Throwable throwable, Class<? extends Exception>... causeClasses) 获取由指定异常类引起的异常- Parameters:
throwable- 异常causeClasses- 定义的引起异常的类- Returns:
- 是否由指定异常类引起
-
isFromOrSuppressedThrowable
public static boolean isFromOrSuppressedThrowable(Throwable throwable, Class<? extends Throwable> exceptionClass) 判断指定异常是否来自或者包含指定异常- Parameters:
throwable- 异常exceptionClass- 定义的引起异常的类- Returns:
- true 来自或者包含
-
isFromOrSuppressedThrowable
public static boolean isFromOrSuppressedThrowable(Throwable throwable, Class<? extends Throwable> exceptionClass, boolean checkCause) 判断指定异常是否来自或者包含指定异常- Parameters:
throwable- 异常exceptionClass- 定义的引起异常的类checkCause- 判断cause- Returns:
- true 来自或者包含
-
convertFromOrSuppressedThrowable
public static <T extends Throwable> T convertFromOrSuppressedThrowable(Throwable throwable, Class<T> exceptionClass) 转化指定异常为来自或者包含指定异常- Type Parameters:
T- 异常类型- Parameters:
throwable- 异常exceptionClass- 定义的引起异常的类- Returns:
- 结果为null 不是来自或者包含
-
convertFromOrSuppressedThrowable
public static <T extends Throwable> T convertFromOrSuppressedThrowable(Throwable throwable, Class<T> exceptionClass, boolean checkCause) 转化指定异常为来自或者包含指定异常- Type Parameters:
T- 异常类型- Parameters:
throwable- 异常exceptionClass- 定义的引起异常的类checkCause- 判断cause- Returns:
- 结果为null 不是来自或者包含
-
getThrowableList
获取异常链上所有异常的集合,如果Throwable对象没有cause,返回只有一个节点的List 如果传入null,返回空集合- Parameters:
throwable- 异常对象,可以为null- Returns:
- 异常链中所有异常集合
-
getRootCause
获取异常链中最尾端的异常,即异常最早发生的异常对象 此方法通过调用Throwable.getCause()直到没有cause为止,如果异常本身没有cause,返回异常本身 传入null返回也为null- Parameters:
throwable- 异常对象,可能为null- Returns:
- 最尾端异常, 传入null参数返回也为null
-
getRootCauseMessage
获取异常链中最尾端的异常的消息, 消息格式为:{SimpleClassName}: {ThrowableMessage}- Parameters:
th- 异常- Returns:
- 消息
-