Files
gnu_java_utils_library/README.md
2026-08-06 03:32:37 +08:00

191 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GNU Java Utils Library
一个轻量级 Java 工具库,提供常用的压缩/解压与终端彩色输出功能等。
## 技术栈
- **Java 25**
- **Maven** 构建
- **Apache Commons Compress 1.28.0**(压缩功能依赖)
## 项目结构
```
src/main/java/top/gtb520/java/gnu/java/utils/library/
├── main.java # 统一入口接口
├── utils/
│ ├── compress/
│ │ └── compress.java # 压缩/解压工具类
│ └── print/
│ ├── echo.java # 终端彩色输出工具类
│ └── ColorNameEnum.java # 颜色名称枚举
```
## 功能模块
### 1. 压缩/解压 (`compress`)
支持 **Tar.Gz****Zip** 两种压缩格式的压缩与解压操作,支持单文件和整个目录的递归处理。
| 方法 | 说明 | 参数 |
|------|------|------|
| `compress.MakeTarGz(source, dest)` | 将文件或目录压缩为 `.tar.gz` | `source` 源路径,`dest` 压缩包输出路径 |
| `compress.UnTarGz(source, dest)` | 解压 `.tar.gz` 到指定目录 | `source` 压缩包路径,`dest` 解压目标目录 |
| `compress.MakeZip(source, dest)` | 将文件或目录压缩为 `.zip` | `source` 源路径,`dest` 压缩包输出路径 |
| `compress.UnZip(source, dest)` | 解压 `.zip` 到指定目录 | `source` 压缩包路径,`dest` 解压目标目录 |
**使用示例:**
```java
import top.gtb520.java.gnu.java.utils.library.utils.compress.compress;
// 压缩目录为 Tar.Gz
compress.MakeTarGz("/path/to/source", "/path/to/output.tar.gz");
// 解压 Tar.Gz
compress.UnTarGz("/path/to/output.tar.gz", "/path/to/dest");
// 压缩文件为 Zip
compress.MakeZip("/path/to/file.txt", "/path/to/output.zip");
// 解压 Zip
compress.UnZip("/path/to/output.zip", "/path/to/dest");
```
也可以通过统一入口 `main` 接口调用:
```java
import top.gtb520.java.gnu.java.utils.library.main;
main.compress.UnTarGz(source, dest);
main.compress.TarGz(source, dest);
```
### 2. 终端彩色输出 (`echo`)
基于 ANSI 转义序列,在终端中输出彩色文本。
| 方法 | 说明 | 参数 |
|------|------|------|
| `echo.ColorPrintln(message, color)` | 使用预定义颜色打印 | `message` 文本内容,`color` 颜色枚举 |
| `echo.ColorHexPrintln(message, hexColor)` | 使用自定义 ANSI 颜色码打印 | `message` 文本内容,`hexColor` ANSI 颜色代码 |
**支持的颜色枚举 (`ColorNameEnum`)**
| 枚举值 | 颜色 |
|--------|------|
| `RED` | 红色 |
| `GREEN` | 绿色 |
| `YELLOW` | 黄色 |
| `BLUE` | 蓝色 |
| `PURPLE` | 紫色 |
| `CYAN` | 青色 |
**使用示例:**
```java
import top.gtb520.java.gnu.java.utils.library.utils.print.echo;
import top.gtb520.java.gnu.java.utils.library.utils.print.ColorNameEnum;
// 使用预定义颜色
echo.ColorPrintln("错误信息", ColorNameEnum.RED);
echo.ColorPrintln("成功信息", ColorNameEnum.GREEN);
// 使用自定义 ANSI 颜色码
echo.ColorHexPrintln("自定义橙色", "38;5;208");
```
也可以通过统一入口 `main` 接口调用:
```java
import top.gtb520.java.gnu.java.utils.library.main;
import top.gtb520.java.gnu.java.utils.library.utils.print.ColorNameEnum;
main.echo.Println("警告信息", ColorNameEnum.YELLOW);
main.echo.ColorHexPrintln("自定义颜色", "31");
```
### 3. 随机生成器 (`random`)
随机生成器提供生成随机字符串、数字、UUID 等功能。
| 方法 | 说明 | 参数 |
|------|------|---------------------------------|
| `processing.random.defaults.random(start_scope, end_scope)` | 根据输入的范围生成随机数 | `start_scope` 起始数,`end_scope` 结束数 |
| `processing.random.defaults.randomString(int length)` | 生成指定长度的随机字符串 | `length` 字符串长度 |
**使用示例:**
```java
package top.gtb520.java.gnu.java.utils.library.utils.processing.random;
defaults.random(1, 100);
defaults.randomString(10);
```
### 4. HWID生成
HWID生成器提供生成硬件ID的功能
| 方法 | 说明 | 参数 |
|---------------------------------------------------------------------------------------|--------|---|
| `processing.hwid.getHWID.generateHWID()` | 生成HWID | |
**使用示例**
```java
import top.gtb520.java.gnu.java.utils.library.utils.processing.hwid.getHWID;
String Hwid_Str;
Hwid_Str = getHWID.generateHWID();
System.out.println("HWID: " + Hwid_Str);
System.out.println("HWID length: " + Hwid_Str.length());
```
## 构建
```bash
mvn compile
```
```bash
mvn package
```
## 使用
编译成功后,将 `target/gnu-java-utils-library-1.0.0.jar` 放入项目依赖中。</br>
或者在releases中下载最新版jar包放入项目依赖中。
#### 使用示例:
**pom.xml**
```xml
<dependencies>
<!-- 引入本地依赖lib/gnu_java_utils_library-1.0-SNAPSHOT.jar -->
<dependency>
<groupId>top.gtb520.java.gnu</groupId>
<artifactId>gnu_java_utils_library</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<!-- ${project.basedir} 为项目目录, /lib/ 为lib目录xxxx.jar 依赖的Jar包-->
<systemPath>${project.basedir}/lib/gnu_java_utils_library-1.0-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies>
```
## 异常处理
压缩/解压方法在以下情况会抛出 `IllegalArgumentException`
- **压缩时**:源路径不存在
- **解压时**:目标路径不是有效的目录
## 许可证
Apache License 2.0
禁止商业用途