From 0304fed324c24baf355fa79b5b47afbd2791e76d Mon Sep 17 00:00:00 2001 From: database-mysql Date: Mon, 10 Aug 2026 06:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20RunTime=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=B8=8E=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 ++++++++ .../java/gnu/java/utils/library/main.java | 21 +++++++++++++ .../library/utils/runtime/JavaRunTimeEnv.java | 30 +++++++++++++++++++ .../utils/library/utils/runtime/RunEnv.java | 17 +++++++++++ .../library/utils/runtime/RunEnvTest.java | 9 ++++++ 5 files changed, 89 insertions(+) create mode 100644 src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/JavaRunTimeEnv.java create mode 100644 src/main/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnv.java create mode 100644 src/test/java/top/gtb520/java/gnu/java/utils/library/utils/runtime/RunEnvTest.java 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