打包jar包指令

AI-摘要
LNotes-AI GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
打包jar包指令
Liuxz以下是将 Java 项目正确打包为可使用的 JAR 文件的详细步骤,适用于普通 Java 项目(非 Maven/Gradle 管理):
前提准备
假设你的项目结构如下(以之前的ArrayUtil.java为例):
plaintext
1 | myproject/ # 项目根目录 |
步骤 1:编译 Java 源文件为 class 文件
打开命令行(Windows:cmd;Mac/Linux:Terminal)
进入项目根目录
myproject:bash
1
cd /path/to/myproject # 替换为你的项目实际路径
编译
ArrayUtil.java,生成.class文件(会自动创建与包结构一致的目录):bash
1
javac -d ./classes src/util/ArrayUtil.java
-d ./classes:指定编译后的.class文件输出到classes目录(会自动创建)- 执行后,会生成
classes/util/ArrayUtil.class
步骤 2:创建 MANIFEST.MF 文件(可选,用于可执行 JAR)
如果需要通过java -jar直接运行 JAR(即 JAR 包含主程序入口),需创建清单文件:
在项目根目录创建
META-INF文件夹:bash
1
mkdir -p META-INF # Windows可手动创建
在
META-INF文件夹中创建MANIFEST.MF文件,内容如下:plaintext
1
2Manifest-Version: 1.0
Main-Class: util.ArrayUtil # 主类的完整包名+类名(含main方法的类)- 注意:文件最后必须留一个空行,否则会失效
步骤 3:使用 jar 命令打包 class 文件
进入
classes目录(存放.class文件的目录):bash
1
cd classes
执行打包命令:
如果是普通 JAR(作为库引用,不需要 main 方法):
bash
1
jar -cvf ../myutil.jar *
如果是可执行 JAR(需要 main 方法,需指定 MANIFEST):
bash
1
jar -cvfm ../myutil.jar ../META-INF/MANIFEST.MF *
命令说明:
c:创建新 JAR 包v:显示打包过程(可选)f:指定输出的 JAR 文件名(这里是myutil.jar)m:指定 MANIFEST.MF 文件(仅可执行 JAR 需要)*:打包当前目录下的所有文件(即包结构和.class文件)
步骤 4:验证 JAR 包
查看 JAR 包内容,确认包含
.class文件:bash
1
jar -tf ../myutil.jar
正常输出应包含:
util/ArrayUtil.class(及其他类文件)测试使用:
普通 JAR(作为库):在其他项目中引用
bash
1
2
3
4# 编译依赖该JAR的Java文件
javac -cp ../myutil.jar YourJavaFile.java
# 运行
java -cp ../myutil.jar:. YourMainClass可执行 JAR:直接运行
bash
1
java -jar ../myutil.jar
常见问题解决
- 如果提示 “找不到主类”:检查
MANIFEST.MF中的Main-Class是否正确(包名 + 类名是否匹配) - 如果提示 “ClassNotFoundException”:确认 JAR 包中是否包含对应的
.class文件(用jar -tf检查) - 如果有第三方依赖:需在
MANIFEST.MF中通过Class-Path指定依赖 JAR 的路径,或使用 Maven/Gradle 打 “胖 JAR”(包含所有依赖)
按照以上步骤,就能生成可正常使用的 JAR 包了。
分享
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果




