使用 JAR 文件编译、打包与运行的完整流程(Windows)

1. 编译 Java 文件(指定依赖 JAR)

javac -encoding UTF-8 \
      -cp "D:\project\xxx\字符串加解密jar包\lib\commons-lang3-3.11.jar" \
      -d bin \
      src\test\*.java
  • -encoding UTF-8: 指定源码编码为 UTF-8,避免中文乱码。
  • -cp: 添加 commons-lang3-3.11.jar 到编译类路径。
  • -d bin: 将编译后的 .class 文件输出到 bin 目录。
  • src\test*.java: 编译 src\test 目录下所有 Java 文件。

2. 解压依赖 JAR(提取类文件)

# 创建临时目录存放解压内容
mkdir "D:\project\xxx\字符串加解密jar包\lib\temp"

# 进入临时目录并解压 JAR
cd "D:\project\xxx\字符串加解密jar包\lib\temp"
jar xf "../commons-lang3-3.11.jar"

# 返回项目根目录
cd "D:\project\xxx\字符串加解密jar包"
  • jar xf: 解压 JAR 文件到当前目录。
  • 目的: 将依赖的第三方类文件与项目代码一起打包到最终 JAR 中。

3. 打包生成可执行 JAR(含清单文件)

jar cfm StrUtilsApp.jar lib\manifest.txt \
    -C bin . \
    -C lib\temp .
  • cfm: 创建 JAR + 指定清单文件(manifest.txt)。
  • -C bin .: 将 bin 目录下的编译文件添加到 JAR 根。
  • -C lib\temp .: 将解压后的依赖类文件添加到 JAR 根。
  • 清单文件要求: 需包含 Main-Class: test.Main 指定入口类。

4. 清理临时文件

rmdir /s /q "D:\project\xxx\字符串加解密jar包\lib\temp"
  • /s /q: 静默删除临时目录及其子文件。

5. 运行 JAR 的两种方式

方式一:直接运行(需正确配置 Main-Class)

java -jar StrUtilsApp.jar

方式二:手动指定类路径

java -cp "StrUtilsApp.jar;lib\commons-lang3-3.11.jar" test.Main
  • -cp: 显式指定 JAR 和依赖库的路径。
  • 适用场景: 当未在清单文件中设置 Main-Class 时,需手动指定入口类。

目录结构

原始目录结构:
D:\project\xxx\字符串加解密jar包\
├── bin\ 
├── lib\
│   ├── commons-lang3-3.11.jar  # 依赖的jar包
│   └── manifest.txt            # 主清单文件   
├── src\
│   └── test\
│       ├── Main.java           # 源码入口
│       └── StrUtils.java       # 核心加解密  

-----------------------------------------------
最后的目录结果:
D:\project\xxx\字符串加解密jar包\
├── bin\ 
├── lib\
│   ├── commons-lang3-3.11.jar  # 依赖的jar包
│   └── manifest.txt            # 主清单文件
├── src\
│   └── test\
│       ├── Main.java           # 源码入口
│       └── StrUtils.java       # 核心加解密            
└── StrUtilsApp.jar             # 最终打包的 JAR 文件 

关键注意事项

  1. 路径中的空格: 包含空格的路径必须用英文引号包裹(如 “D:\project\hrz\字符串加解密jar包”)。
  2. 依赖版本: 确保所有命令中的 JAR 文件名与实际版本一致(如 3.11)。
  3. 清单文件: manifest.txt 需放在 lib 目录下,内容需包含 Main-Class: test.Main 和 Class-Path(若有外部依赖)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值