添加 临时目录相关方法

This commit is contained in:
2026-08-10 20:12:21 +08:00
parent 03e223df9b
commit 441891652c
5 changed files with 119 additions and 8 deletions

View File

@@ -2,20 +2,22 @@
一个轻量级 Java 工具库,提供压缩/解压、终端彩色输出、随机数生成、硬件标识等功能。 一个轻量级 Java 工具库,提供压缩/解压、终端彩色输出、随机数生成、硬件标识等功能。
*注:此项目/仓库已同步到Github https://github.com/databasemysql233-debug/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](https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git)
## 技术栈 ## 技术栈
- **Java 25** - **Java 25**
- **Maven** 构建 - **Maven** 构建
- **Apache Commons Compress 1.28.0**(压缩功能依赖) - **Apache Commons Compress 1.28.0**(压缩功能依赖)
- **JUnit Jupiter**(测试框架)
## 项目结构 ## 项目结构
``` ```
src/main/java/top/gtb520/java/gnu/java/utils/library/ src/main/java/top/gtb520/java/gnu/java/utils/library/
├── main.java # 统一入口接口 ├── main.java # 统一入口接口
├── version.java # 项目版本信息
└── utils/ └── utils/
├── compress/ ├── compress/
│ └── compress.java # 压缩/解压工具类 │ └── compress.java # 压缩/解压工具类
@@ -25,8 +27,11 @@ src/main/java/top/gtb520/java/gnu/java/utils/library/
└── processing/ └── processing/
├── random/ ├── random/
│ └── defaults.java # 随机数/字符串生成器 │ └── defaults.java # 随机数/字符串生成器
── hwid/ ── hwid/
└── getHWID.java # 硬件标识生成器 └── getHWID.java # 硬件标识生成器
└── runtime/
├── RunEnv.java # 运行环境信息
└── JavaRunTimeEnv.java # Java 运行时环境信息
``` ```
## 功能模块 ## 功能模块
@@ -214,6 +219,75 @@ String hwid = getHWID.generateHWID();
System.out.println("HWID: " + hwid); 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 ```bash

View File

@@ -6,7 +6,7 @@
<groupId>top.gtb520.java.gnu</groupId> <groupId>top.gtb520.java.gnu</groupId>
<artifactId>gnu_java_utils_library</artifactId> <artifactId>gnu_java_utils_library</artifactId>
<version>1.2-SNAPSHOT</version> <version>1.3-SNAPSHOT</version>
<properties> <properties>
<maven.compiler.source>25</maven.compiler.source> <maven.compiler.source>25</maven.compiler.source>

View File

@@ -2,6 +2,8 @@ package top.gtb520.java.gnu.java.utils.library.utils.runtime;
import top.gtb520.java.gnu.java.utils.library.main; import top.gtb520.java.gnu.java.utils.library.main;
import java.nio.file.Path;
// 获取运行时的信息 // 获取运行时的信息
public class RunEnv { public class RunEnv {
// 获取当前运行的JAR文件路径 // 获取当前运行的JAR文件路径
@@ -9,9 +11,42 @@ public class RunEnv {
String path = main.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String path = main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
if (System.getProperty("os.name").startsWith("Windows")) { if (System.getProperty("os.name").startsWith("Windows")) {
path = path.replace('/', '\\'); path = path.replace('/', '\\');
//去除路径最前面的 “\” //去除路径最前面的 "\\"
path = path.substring(1); path = path.substring(1);
} }
return path; 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;
}
} }

View File

@@ -2,7 +2,7 @@ package top.gtb520.java.gnu.java.utils.library;
public class version { 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 JAVA_VERSION = "25";
public static final String OpenJDK_VERSION = "25.0.0.0.1"; 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"; public static final String OpenJDK_Runtime_Environment = "25.0.0.0.1+36-GA";

View File

@@ -1,9 +1,11 @@
package top.gtb520.java.gnu.java.utils.library.utils.runtime; 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 { class RunEnvTest {
public static void main() { public static void main() {
System.out.println(getJarPath()); System.out.println(getJarPath());
System.out.printf(newJarThisTempDir() + "\n");
System.out.println(newTempDir());
} }
} }