准备Java文件 Hello.java
public class Hello{ public static void main(String[] args) { System.out.println("Hello"); } }
打包过程
$ javac Hello.java # 编译成.class 文件
$ jar -cvf hello.jar Hello.class # 打包
已添加清单
正在添加: Hello.class(输入 = 401) (输出 = 275)(压缩了 31%)
$ jar -xvf hello.jar # 解压
已创建: META-INF/
已解压: META-INF/MANIFEST.MF
已解压: Hello.class
记事本打开文件 META-INF/MANIFEST.MF, 添加Main-Class: Hello
Manifest-Version: 1.0
Created-By: 1.8.0_172 (Oracle Corporation)
Main-Class: Hello
再次打包
$ jar -cvfm hello.jar META-INF/MANIFEST.MF Hello.class
已添加清单
正在添加: Hello.class(输入 = 401) (输出 = 275)(压缩了 31%)
# jar -cvfm hello.jar META-INF/MANIFEST.MF -C demo/ .
# 打包demo文件夹下所有文件,注意后面的'.'
$ java -jar hello.jar # 执行jar包
Hello
打包参数
-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v 输出详细报告
-m 指定MANIFEST.MF文件
-0 生成jar包时不压缩内容
-M 不生成清单文件MANIFEST.MF
-i 为指定的jar文件创建索引文件
-C 可在相应的目录下执行命令
参考
</div>