用jar命令打包java中class文件
用jar命令打包java中class文件:
1、不指定清单文件和Main-Class的打包方式(这种打包只能作为类库,不能直接运行)
E:MyJar>javac -encoding utf8 -d . MyJar.java Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 E:MyJar>java com.zls.wlk.myjar.MyJar Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 java中jar命令练习 E:MyJar>jar -cvf myjar.jar com/zls/wlk/myjar/MyJar.class Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 已添加清单 正在添加: com/zls/wlk/myjar/MyJar.class(输入 = 444) (输出 = 322)(压缩了 27%) E:MyJar>java -jar myjar.jar Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 myjar.jar中没有主清单属性 E:MyJar>
也可以打包某个目录:
E:>jar -cvf myjar.jar MyJar Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 已添加清单 正在添加: MyJar/(输入 = 0) (输出 = 0)(存储了 0%) 正在添加: MyJar/com/(输入 = 0) (输出 = 0)(存储了 0%) 正在添加: MyJar/com/zls/(输入 = 0) (输出 = 0)(存储了 0%) 正在添加: MyJar/com/zls/wlk/(输入 = 0) (输出 = 0)(存储了 0%) 正在添加: MyJar/com/zls/wlk/myjar/(输入 = 0) (输出 = 0)(存储了 0%) 正在添加: MyJar/com/zls/wlk/myjar/MyJar.class(输入 = 444) (输出 = 322)(压缩了 27%) 正在添加: MyJar/myjar.jar(输入 = 814) (输出 = 594)(压缩了 27%) 正在添加: MyJar/MyJar.java(输入 = 147) (输出 = 139)(压缩了 5%)
2、清单文件学习:
文件所在路径:在jar包的META-INF目录下,文件名是:MANIFEST.MF(myjar.jar\META-INF\MANIFEST.MF)
文件格式如下截图所示:
其中清单文件中我们感兴趣的属性是:Main-Class属性,这个属性用于指定JAR文件中包含main方法的类,设置了该属性,就可以让一个JAR文件变成可执行文件。
2、打包时指定Main-Class(jar -cvfe jar文件名.jar main方法所在类的类名 要打包的文件名),此时jar包就变成可执行文件。
1 E:\MyJar>jar -cvfe myjar02.jar com.zls.wlk.myjar.MyJar com/zls/wlk/myjar/*.class 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 3 已添加清单 4 正在添加: com/zls/wlk/myjar/MyJar.class(输入 = 444) (输出 = 322)(压缩了 27%) 5 6 E:\MyJar>java -jar myjar02.jar 7 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 8 java中jar命令练习 9 10 E:\MyJar>
加了e后打包的jar包生成的清单文件就多了Main-Class属性,见如下截图所示:
3、指定MANIFEST.MF(jar -cvfm jar文件名.jar 清单文件名 类文件),提前把文件清单修改后,在打包时打包到jar包
1 E:\MyJar>jar -cvfm myjar03.jar MANIFEST.MF com/zls/wlk/myjar/*.class 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 3 已添加清单 4 正在添加: com/zls/wlk/myjar/MyJar.class(输入 = 444) (输出 = 322)(压缩了 27%) 5 6 E:\MyJar>java -jar myjar03.jar 7 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 8 java中jar命令练习 9 10 E:\MyJar>
指定的文件清单内容如下截图:
好了,今天就讲到这里,希望读者有收获,下课。