jar命令

2018-08-24  本文已影响4人  tracy_668

jar的作用

jar的使用示例

jar cvf HelloWorld.jar HelloWorld.class // 将class文件压缩成jar包
jar tf HelloWorld.jar // jar包包含文件列表
META-INF/
META-INF/MANIFEST.MF
HelloWorld.class

Manifest文件的作用

Manifest-Version: 1.0
Main-Class: com.ibm.portalnews.entrance.Main
Class-Path: lib\commons-collections-3.2.jar lib\commons-configuration-1.5.jar lib\commons-lang-2.3.jar lib\commons-logging.jar lib\dom4j-1.6.1.jar lib\jaxen-1.1-beta-7.jar lib\jdom.jar lib\log4j-1.2.14.jar

Manifest-Version表示版本号, Main-Class 是jar文件的主类,程序的入口,Class-Path 指定需要的jar的路径,多个jar必须要在一行上,以空格隔开,注意:对于文件路径,windows下使用\来分割,linux下用/分割。 在清单文件中, 所有选项的冒号后面必须加个空格,最后一行必须是一个回车换行符。

jar cvfM AppServer.jar META-INF/MANIFEST.MF AppServer.class
jar uf AppServer.jar AppServer$1.class // \ 用于mac上转义
java -jar AppServer.jar server1 // 直接执行jar, server1 是参数
unzip AppServer.jar -d mytest // unzip 解压

是否可以将jar包A引用的其他jar包一同打包到A里面? 这样的话就很方便统一管理了,遗憾的是这样是不行的,java 类加载器是无法加载jar包内包含的其他jar包的class,这里可以使用-0 选项,它表示只打包不压缩, jar -cvf0m , 这样打的包不会压缩,classloader就可以加载其他jar中包含的class文件了。

jar cvf0M smconfweb.jar META-INF/MANIFEST.MF *

上一篇 下一篇

猜你喜欢

热点阅读