public final class SystemUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.math.BigDecimal |
JAVA_SPECIFICATION_VERSION |
private static java.math.BigDecimal |
JIGSAW_JAVA_VERSION |
private static int |
PROC_STATUS_PID_FIRST_CHARS |
Modifier | Constructor and Description |
---|---|
private |
SystemUtils() |
Modifier and Type | Method and Description |
---|---|
static boolean |
endsWithJavaPath(java.lang.String jvmExecPath) |
private static java.math.BigDecimal |
getJavaSpecificationVersion()
Safely extracts major and minor version as fractional number from
|
static boolean |
isBuiltInJava9AtLeast() |
static boolean |
isJava9AtLeast(java.math.BigDecimal version) |
static boolean |
isJava9AtLeast(java.lang.String jvmExecutablePath) |
static java.lang.Long |
pid() |
(package private) static java.lang.Long |
pidOnJava9() |
(package private) static java.lang.Long |
pidOnJMX() |
(package private) static java.lang.Long |
pidStatusOnBSD()
The process status.
|
(package private) static java.lang.Long |
pidStatusOnBSD(java.lang.String root)
For testing purposes only.
|
(package private) static java.lang.Long |
pidStatusOnLinux()
$ cat /proc/self/stat
48982 (cat) R 9744 48982 9744 34818 48982 8192 185 0 0 0 0 0 0 0 20 0 1 0 137436614 103354368 134 18446744073709551615 4194304 4235780 140737488346592 140737488343784 252896458544 0 0 0 0 0 0 0 17 2 0 0 0 0 0 $ SELF_PID=$(cat /proc/self/stat) $ echo $CPU_ID | gawk '{print $1}' 48982 |
(package private) static java.lang.Long |
pidStatusOnLinux(java.lang.String root)
For testing purposes only.
|
static java.lang.ClassLoader |
platformClassLoader() |
(package private) static java.lang.ClassLoader |
reflectClassLoader(java.lang.Class<?> target,
java.lang.String getterMethodName) |
static java.io.File |
toJdkHomeFromJre()
If system property java.home is /jdk (since jdk9) or /jdk/jre (prior to jdk9) then
the absolute path to
JDK home is returned /jdk.
|
(package private) static java.io.File |
toJdkHomeFromJre(java.lang.String jreHome)
If
jreHome is /jdk (since jdk9) or /jdk/jre (prior to jdk9) then
the absolute path to JDK home is returned /jdk. |
static java.io.File |
toJdkHomeFromJvmExec(java.lang.String jvmExecutable)
If
jvmExecutable is /jdk/bin/java (since jdk9) or /jdk/jre/bin/java (prior to jdk9)
then the absolute path to JDK home is returned /jdk. |
static java.math.BigDecimal |
toJdkVersionFromReleaseFile(java.io.File jdkHome) |
public static final java.math.BigDecimal JAVA_SPECIFICATION_VERSION
private static final java.math.BigDecimal JIGSAW_JAVA_VERSION
private static final int PROC_STATUS_PID_FIRST_CHARS
public static boolean endsWithJavaPath(java.lang.String jvmExecPath)
jvmExecPath
- e.g. /jdk/bin/java, /jdk/jre/bin/javatrue
if jvmExecPath
is path to java binary executorpublic static java.io.File toJdkHomeFromJvmExec(java.lang.String jvmExecutable)
jvmExecutable
is /jdk/bin/java (since jdk9) or /jdk/jre/bin/java (prior to jdk9)
then the absolute path to JDK home is returned /jdk.
jvmExecutable
is incorrect.jvmExecutable
- /jdk/bin/java* or /jdk/jre/bin/java*public static java.io.File toJdkHomeFromJre()
static java.io.File toJdkHomeFromJre(java.lang.String jreHome)
jreHome
is /jdk (since jdk9) or /jdk/jre (prior to jdk9) then
the absolute path to JDK home is returned /jdk.
jreHome
must be taken from system property java.home.jreHome
- path to /jdk or /jdk/jrepublic static java.math.BigDecimal toJdkVersionFromReleaseFile(java.io.File jdkHome)
private static java.math.BigDecimal getJavaSpecificationVersion()
$MAJOR.$MINOR.$SECURITY.
public static boolean isJava9AtLeast(java.lang.String jvmExecutablePath)
public static boolean isBuiltInJava9AtLeast()
public static boolean isJava9AtLeast(java.math.BigDecimal version)
public static java.lang.ClassLoader platformClassLoader()
public static java.lang.Long pid()
static java.lang.Long pidOnJMX()
static java.lang.Long pidStatusOnLinux() throws java.lang.Exception
java.lang.Exception
- i/o and number format excstatic java.lang.Long pidStatusOnLinux(java.lang.String root) throws java.lang.Exception
root
- shifted to test-classespidStatusOnLinux()
java.lang.Exception
- same as in pidStatusOnLinux()
static java.lang.Long pidStatusOnBSD() throws java.lang.Exception
java.lang.Exception
- if could not read /proc/curproc/statusstatic java.lang.Long pidStatusOnBSD(java.lang.String root) throws java.lang.Exception
root
- shifted to test-classespidStatusOnBSD()
java.lang.Exception
- same as in pidStatusOnBSD()
static java.lang.Long pidOnJava9()
static java.lang.ClassLoader reflectClassLoader(java.lang.Class<?> target, java.lang.String getterMethodName)