Package org.aoju.bus.core.toolkit
Class RuntimeKit
java.lang.Object
org.aoju.bus.core.toolkit.RuntimeKit
-
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 StringexecForString(String... cmds) 执行系统命令,使用系统默认编码static StringexecForString(Charset charset, String... cmds) 执行系统命令,使用传入的charset编码static ThrowablegetCausedBy(Throwable throwable, Class<? extends Exception>... causeClasses) 获取由指定异常类引起的异常static StringgetErrorResult(Process process) 获取命令执行异常结果,使用系统默认编码,,获取后销毁进程static StringgetErrorResult(Process process, Charset charset) 获取命令执行异常结果,获取后销毁进程static long获得JVM中剩余的内存数,单位bytestatic long获得JVM中可以从系统中获取的最大的内存数,单位byte,以-Xmx参数为准static String获得完整消息,包括异常名,消息格式为:{SimpleClassName}: {ThrowableMessage}static intgetPid()获得当前进程的PID 当失败时返回-1static int获得JVM可用的处理器数量(一般为CPU核心数)static 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获得JVM已经从系统中获取到的总共的内存数,单位bytestatic long返回应用启动到现在的毫秒数static long获得JVM最大可用内存,计算方法为:
最大内存-总内存+剩余内存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
-
execForString
执行系统命令,使用系统默认编码- Parameters:
cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果
- Throws:
InternalException- IO异常
-
execForString
执行系统命令,使用传入的charset编码- Parameters:
charset- 编码cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果
- Throws:
InternalException- 内部处理异常
-
execForLines
执行系统命令,使用系统默认编码- Parameters:
cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果, 按行区分
- Throws:
InternalException- 内部处理异常
-
execForLines
执行系统命令,使用传入的charset编码- Parameters:
charset- 编码cmds- 命令列表,每个元素代表一条命令- Returns:
- 执行结果, 按行区分
- Throws:
InternalException- 内部处理异常
-
exec
-
exec
-
exec
-
getResultLines
-
getResultLines
-
getResult
-
getResult
-
getErrorResult
-
getErrorResult
-
destroy
-
addShutdownHook
增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作- Parameters:
hook- 钩子
-
getProcessorCount
public static int getProcessorCount()获得JVM可用的处理器数量(一般为CPU核心数)这里做一个特殊的处理,在特殊的CPU上面,会有获取不到CPU数量的情况,所以这里做一个保护; 默认给一个7,真实的CPU基本都是偶数,方便区分。 如果不做处理,会出现创建线程池时
ThreadPoolExecutor,抛出异常:IllegalArgumentException- Returns:
- 可用的处理器数量
-
getFreeMemory
public static long getFreeMemory()获得JVM中剩余的内存数,单位byte- Returns:
- JVM中剩余的内存数,单位byte
-
getTotalMemory
public static long getTotalMemory()获得JVM已经从系统中获取到的总共的内存数,单位byte- Returns:
- JVM中剩余的内存数,单位byte
-
getMaxMemory
public static long getMaxMemory()获得JVM中可以从系统中获取的最大的内存数,单位byte,以-Xmx参数为准- Returns:
- JVM中剩余的内存数,单位byte
-
getUsableMemory
public static long getUsableMemory()获得JVM最大可用内存,计算方法为:
最大内存-总内存+剩余内存- Returns:
- 最大可用内存
-
getPid
public static int getPid()获得当前进程的PID 当失败时返回-1- Returns:
- the int
-
getUpTime
public static long getUpTime()返回应用启动到现在的毫秒数- Returns:
- the long
-
getVmArguments
-
getMessage
-
getSimpleMessage
-
wrapRuntime
使用运行时异常包装编译异常 如果传入参数已经是运行时异常,则直接返回,不再额外包装- Parameters:
throwable- 异常- Returns:
- 运行时异常
-
wrapRuntime
将指定的消息包装为运行时异常- Parameters:
message- 异常消息- Returns:
- 运行时异常
-
wrap
-
wrapAndThrow
- Parameters:
throwable- 异常
-
wrapRuntimeAndThrow
-
unwrap
-
getStackElements
-
getStackElement
获取指定层的堆栈信息- Parameters:
layers- 堆栈层级- Returns:
- 指定层的堆栈信息
-
getStackElement
获取指定层的堆栈信息- Parameters:
fqcn- 指定类名为基础layers- 指定类名的类堆栈相对层数- Returns:
- 指定层的堆栈信息
-
getRootStackElement
-
getStackTraceOneLine
-
getStackTraceOneLine
-
getStackTrace
-
getStackTrace
-
getStackTrace
-
isCausedBy
-
getCausedBy
-
isFromOrSuppressedThrowable
-
isFromOrSuppressedThrowable
-
convertFromOrSuppressedThrowable
-
convertFromOrSuppressedThrowable
-
getThrowableList
-
getRootCause
获取异常链中最尾端的异常,即异常最早发生的异常对象 此方法通过调用Throwable.getCause()直到没有cause为止,如果异常本身没有cause,返回异常本身 传入null返回也为null- Parameters:
throwable- 异常对象,可能为null- Returns:
- 最尾端异常, 传入null参数返回也为null
-
getRootCauseMessage
-