添加 临时目录相关方法
This commit is contained in:
82
README.md
82
README.md
@@ -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
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user