diff --git a/pom.xml b/pom.xml index f775f0b..19d5cb0 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,18 @@ commons-compress 1.28.0 + + org.junit.jupiter + junit-jupiter + RELEASE + test + + + org.junit.jupiter + junit-jupiter + RELEASE + test + \ No newline at end of file diff --git a/src/main/java/top/gtb520/java/gnu/java/utils/library/main.java b/src/main/java/top/gtb520/java/gnu/java/utils/library/main.java index 5361040..1132802 100644 --- a/src/main/java/top/gtb520/java/gnu/java/utils/library/main.java +++ b/src/main/java/top/gtb520/java/gnu/java/utils/library/main.java @@ -81,4 +81,25 @@ public interface main { return top.gtb520.java.gnu.java.utils.library.version.OpenJDK_64Bit_Server_VM; } } + + interface runtime { + static String getJarPath() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.getJarPath(); + } + static String getJavaVersion() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaVersion(); + } + static String getJavaRuntimeEnvironmentVersion() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaRuntimeEnvironmentVersion(); + } + static String getJavaVMVersion() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaVMVersion(); + } + static String getJavaBits() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaBits(); + } + static String getJavaVMName() { + return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaVMName(); + } + } } diff --git a/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/JavaRunTimeEnv.java b/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/JavaRunTimeEnv.java new file mode 100644 index 0000000..cb8e4cc --- /dev/null +++ b/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/JavaRunTimeEnv.java @@ -0,0 +1,30 @@ +package top.gtb520.java.gnu.java.utils.library.utils.runtime; + +// 运行时Java环境信息 +public class JavaRunTimeEnv { + + // Java版本号 + public static String JavaVersion() { + return System.getProperty("java.version"); + } + + // Java运行时环境版本号 + public static String JavaRuntimeEnvironmentVersion() { + return System.getProperty("java.runtime.version"); + } + + // 获取虚拟机版本 + public static String JavaVMVersion() { + return System.getProperty("java.vm.version"); + } + + // 获取 JDK 位数,64 位通常包含 amd64 或 64 + public static String JavaBits() { + return System.getProperty("sun.arch.data.model"); + } + + // 获取JavaVM名称 + public static String JavaVMName() { + return System.getProperty("java.vm.name"); + } +} diff --git a/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnv.java b/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnv.java new file mode 100644 index 0000000..ec93b5a --- /dev/null +++ b/src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnv.java @@ -0,0 +1,17 @@ +package top.gtb520.java.gnu.java.utils.library.utils.runtime; + +import top.gtb520.java.gnu.java.utils.library.main; + +// 获取运行时的信息 +public class RunEnv { + // 获取当前运行的JAR文件路径 + public static String getJarPath() { + String path = main.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + if (System.getProperty("os.name").startsWith("Windows")) { + path = path.replace('/', '\\'); + //去除路径最前面的 “\” + path = path.substring(1); + } + return path; + } +} diff --git a/src/test/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnvTest.java b/src/test/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnvTest.java new file mode 100644 index 0000000..84925d4 --- /dev/null +++ b/src/test/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnvTest.java @@ -0,0 +1,9 @@ +package top.gtb520.java.gnu.java.utils.library.utils.runtime; + +import static top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.getJarPath; + +class RunEnvTest { + public static void main() { + System.out.println(getJarPath()); + } +} \ No newline at end of file