3 Commits

Author SHA1 Message Date
3ec2e132c3 更新 README/pom.xml 2026-08-10 20:18:26 +08:00
c8462d5c68 添加 临时目录相关方法 2026-08-10 20:14:39 +08:00
441891652c 添加 临时目录相关方法 2026-08-10 20:12:21 +08:00
6 changed files with 160 additions and 18 deletions

102
README.md
View File

@@ -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 5.13.0**(测试框架)
## 项目结构
```
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,89 @@ 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 版本
main.version.getOpenJDKRuntimeEnvironment(); // OpenJDK 运行时环境
main.version.getOpenJDK64BitServerVM(); // OpenJDK 64-Bit Server VM
```
### 6. 运行时信息 (`runtime`)
获取当前 Java 运行时环境信息,包括 JAR 路径、JVM 版本、位数等。
**运行环境 (`RunEnv`)**
| 方法 | 说明 |
|-------------------------------|------------------------------------------|
| `RunEnv.getJarPath()` | 获取当前运行的 JAR 路径 |
| `RunEnv.getTempDir()` | 获取系统临时目录路径 |
| `RunEnv.newTempDir()` | 在系统临时目录下新建时间戳子目录,返回路径;已存在则返回 `null` |
| `RunEnv.newJarThisTempDir()` | 在 JAR 所在目录下新建时间戳子目录,返回路径;已存在则返回 `null` |
**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("临时目录: " + RunEnv.getTempDir());
System.out.println("新建临时目录: " + RunEnv.newTempDir());
System.out.println("JAR目录临时子目录: " + RunEnv.newJarThisTempDir());
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(); // 虚拟机名称
// runtime.runenv 子接口
main.runtime.runenv.getTempDir(); // 系统临时目录
main.runtime.runenv.newTempDir(); // 新建临时目录
main.runtime.runenv.newJarThisTempDir(); // JAR 目录下新建临时目录
main.runtime.runenv.getJarThisTempDir(); // 同 newJarThisTempDir
```
## 构建
```bash
@@ -228,7 +316,7 @@ mvn package
## 使用
编译成功后,将 `target/gnu-java-utils-library-1.2-SNAPSHOT.jar` 放入项目依赖中,或在 Releases 中下载最新版 JAR 包。
编译成功后,将 `target/gnu-java-utils-library-1.3-SNAPSHOT.jar` 放入项目依赖中,或在 Releases 中下载最新版 JAR 包。
**pom.xml 引入本地依赖:**
@@ -237,9 +325,9 @@ mvn package
<dependency>
<groupId>top.gtb520.java.gnu</groupId>
<artifactId>gnu_java_utils_library</artifactId>
<version>1.2-SNAPSHOT</version>
<version>1.3-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/gnu_java_utils_library-1.2-SNAPSHOT.jar</systemPath>
<systemPath>${project.basedir}/lib/gnu_java_utils_library-1.3-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies>
```

10
pom.xml
View File

@@ -6,7 +6,7 @@
<groupId>top.gtb520.java.gnu</groupId>
<artifactId>gnu_java_utils_library</artifactId>
<version>1.2-SNAPSHOT</version>
<version>1.3-SNAPSHOT</version>
<properties>
<maven.compiler.source>25</maven.compiler.source>
@@ -23,13 +23,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<version>5.13.0</version>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -103,5 +103,28 @@ public interface main {
static String getJavaVMName() {
return top.gtb520.java.gnu.java.utils.library.utils.runtime.JavaRunTimeEnv.JavaVMName();
}
// 运行时等相关方法与接口
interface runenv {
// 获取运行时临时目录
static String newJarThisTempDir() {
return top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.newJarThisTempDir();
}
// 新建临时目录
static String newTempDir() {
return top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.newTempDir();
}
// 获取临时目录
static String getTempDir() {
return top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.getTempDir();
}
// 获取当前运行的JAR文件路径
static String getJarThisTempDir() {
return top.gtb520.java.gnu.java.utils.library.utils.runtime.RunEnv.newJarThisTempDir();
}
}
}
}

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 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;
}
}

View File

@@ -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";

View File

@@ -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());
}
}