diff --git a/README.md b/README.md
index 0639647..2177482 100644
--- a/README.md
+++ b/README.md
@@ -2,20 +2,22 @@
一个轻量级 Java 工具库,提供压缩/解压、终端彩色输出、随机数生成、硬件标识等功能。
-*注:此项目/仓库已同步到Github:( https://github.com/databasemysql233-debug/gnu_java_utils_library.git )*
-*原项目/仓库链接:( https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git )*
+> 注:此项目/仓库已同步到 Github:[https://github.com/databasemysql233-debug/gnu_java_utils_library.git](https://github.com/databasemysql233-debug/gnu_java_utils_library.git)
+> 原项目/仓库链接:[https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git](https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git)
## 技术栈
- **Java 25**
- **Maven** 构建
- **Apache Commons Compress 1.28.0**(压缩功能依赖)
+- **JUnit Jupiter**(测试框架)
## 项目结构
```
src/main/java/top/gtb520/java/gnu/java/utils/library/
├── main.java # 统一入口接口
+├── version.java # 项目版本信息
└── utils/
├── compress/
│ └── compress.java # 压缩/解压工具类
@@ -25,8 +27,11 @@ src/main/java/top/gtb520/java/gnu/java/utils/library/
└── processing/
├── random/
│ └── defaults.java # 随机数/字符串生成器
- └── hwid/
- └── getHWID.java # 硬件标识生成器
+ ├── hwid/
+ │ └── getHWID.java # 硬件标识生成器
+ └── runtime/
+ ├── RunEnv.java # 运行环境信息
+ └── JavaRunTimeEnv.java # Java 运行时环境信息
```
## 功能模块
@@ -214,6 +219,75 @@ String hwid = getHWID.generateHWID();
System.out.println("HWID: " + hwid);
```
+### 5. 版本信息 (`version`)
+
+提供项目版本信息及编译时 Java/OpenJDK 版本常量。
+
+| 方法 | 说明 |
+|----------------------------|----------------|
+| `version.GetVersion()` | 获取项目版本号 |
+| `version.GetJavaVersion()` | 获取编译时 Java 版本 |
+
+```java
+import top.gtb520.java.gnu.java.utils.library.version;
+
+version v = new version();
+System.out.println("项目版本: " + v.GetVersion());
+System.out.println("Java版本: " + v.GetJavaVersion());
+```
+
+也可以通过统一入口调用:
+
+```java
+import top.gtb520.java.gnu.java.utils.library.main;
+
+main.version.getVersion(); // 项目版本
+main.version.getJavaVersion(); // Java 版本
+main.version.getOpenJDKVersion(); // OpenJDK 版本
+```
+
+### 6. 运行时信息 (`runtime`)
+
+获取当前 Java 运行时环境信息,包括 JAR 路径、JVM 版本、位数等。
+
+**运行环境 (`RunEnv`):**
+
+| 方法 | 说明 |
+|---------------------|---------------|
+| `RunEnv.getJarPath()` | 获取当前运行的 JAR 路径 |
+
+**Java 运行时环境 (`JavaRunTimeEnv`):**
+
+| 方法 | 说明 |
+|----------------------------------------|---------------|
+| `JavaRunTimeEnv.JavaVersion()` | Java 版本号 |
+| `JavaRunTimeEnv.JavaRuntimeEnvironmentVersion()` | 运行时环境版本号 |
+| `JavaRunTimeEnv.JavaVMVersion()` | 虚拟机版本号 |
+| `JavaRunTimeEnv.JavaBits()` | JDK 位数(如 64) |
+| `JavaRunTimeEnv.JavaVMName()` | 虚拟机名称 |
+
+```java
+import top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv;
+import top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv;
+
+System.out.println("JAR路径: " + RunEnv.getJarPath());
+System.out.println("Java版本: " + JavaRunTimeEnv.JavaVersion());
+System.out.println("JVM位数: " + JavaRunTimeEnv.JavaBits());
+```
+
+也可以通过统一入口调用:
+
+```java
+import top.gtb520.java.gnu.java.utils.library.main;
+
+main.runtime.getJarPath(); // JAR 路径
+main.runtime.getJavaVersion(); // Java 版本
+main.runtime.getJavaRuntimeEnvironmentVersion(); // 运行时环境版本
+main.runtime.getJavaVMVersion(); // 虚拟机版本
+main.runtime.getJavaBits(); // JDK 位数
+main.runtime.getJavaVMName(); // 虚拟机名称
+```
+
## 构建
```bash
diff --git a/pom.xml b/pom.xml
index 19d5cb0..b86d23d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
top.gtb520.java.gnu
gnu_java_utils_library
- 1.2-SNAPSHOT
+ 1.3-SNAPSHOT
25
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
index ec93b5a..214a9d1 100644
--- 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
@@ -2,6 +2,8 @@ package top.gtb520.java.gnu.java.utils.library.utils.runtime;
import top.gtb520.java.gnu.java.utils.library.main;
+import java.nio.file.Path;
+
// 获取运行时的信息
public class RunEnv {
// 获取当前运行的JAR文件路径
@@ -9,9 +11,42 @@ public class RunEnv {
String path = main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
if (System.getProperty("os.name").startsWith("Windows")) {
path = path.replace('/', '\\');
- //去除路径最前面的 “\”
+ //去除路径最前面的 "\\"
path = path.substring(1);
}
return path;
}
+
+ // 获取临时目录
+ public static String getTempDir() {
+ return System.getProperty("java.io.tmpdir");
+ }
+
+ // 新建临时目录,失败时返回 null
+ public static String newTempDir() {
+ return createTempDir(Path.of(getTempDir()));
+ }
+
+ // 在 当前运行的JAR文件路径 下 新建临时目录,失败时返回 null
+ public static String newJarThisTempDir() {
+ Path parent = Path.of(getJarPath()).getParent();
+ if (parent == null) {
+ return null;
+ }
+ return createTempDir(parent);
+ }
+
+ // 在指定目录下创建以时间戳命名的临时目录,返回目录路径;目录已存在时返回 null
+ private static String createTempDir(Path parent) {
+ Path tempDir = parent.resolve(String.valueOf(System.currentTimeMillis()));
+ if (!tempDir.toFile().exists()) {
+ try {
+ tempDir.toFile().mkdirs();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return tempDir.toString();
+ }
+ return null;
+ }
}
diff --git a/src/main/java/top/gtb520/java/gnu/java/utils/library/version.java b/src/main/java/top/gtb520/java/gnu/java/utils/library/version.java
index a41d92a..1bdfef8 100644
--- a/src/main/java/top/gtb520/java/gnu/java/utils/library/version.java
+++ b/src/main/java/top/gtb520/java/gnu/java/utils/library/version.java
@@ -2,7 +2,7 @@ package top.gtb520.java.gnu.java.utils.library;
public class version {
// 项目的版本信息,不代表实时运行环境
- public static final String VERSION = "1.2";
+ public static final String VERSION = "1.3";
public static final String JAVA_VERSION = "25";
public static final String OpenJDK_VERSION = "25.0.0.0.1";
public static final String OpenJDK_Runtime_Environment = "25.0.0.0.1+36-GA";
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
index 84925d4..ef02f61 100644
--- 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
@@ -1,9 +1,11 @@
package top.gtb520.java.gnu.java.utils.library.utils.runtime;
-import static top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.getJarPath;
+import static top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.*;
class RunEnvTest {
public static void main() {
System.out.println(getJarPath());
+ System.out.printf(newJarThisTempDir() + "\n");
+ System.out.println(newTempDir());
}
}
\ No newline at end of file