jar.exe 工具是 JDK 中带的打包工具, 本质上是zip格式工具, 可以用winrar等软件查看 jar包.
1. jar包 与 zip 包的区别
jar.exe打包后, 会在包的根目录下自动生成一个文件夹 META-INF, 文件夹中只有一个文本文件 MANIFEST.MF, 即所谓的"清单文件", 其中包含着一些供 jvm 使用的信息.
除此外, 没有任何区别. 我曾试过, 将jar中文件解压, 再用winrar压缩成zip格式, 依然能够运行!
2. 使用jar.exe来打包
格式: jar cvf <指定生成的jar包名称> <要打包的文件/文件夹列表, 空格分开>
说明: 参数 c---指明是要创建jar包 v----屏幕上显示详细信息 f-----指定生成的jar包文件名.
例子: jar cvf ab.jar 1.class 2.class -------------将文件1.class和2.class打包生成ab.jar
jar cvf abc.jar 1.class com -------------将文件1.class和 文件夹com 打包生成abc.jar.
3. 生成可直接运行的 jar包
关键不同处在于, 需要告诉jar.exe工具: 哪个class中包含有main() 是可运行的? jar.exe工具将这些信息读出并写入到jar包中的manifest.mf文件中, 这样双击后, jvm可以找到 main() 开始运行!
实现方法是: 1.手动编辑一个文本文件(任何文件名均可), 将信息写入此文件中, 比如是 classinfo.txt
2. jar.exe打包时, 用m参数指明信息文件.
例子: com.abc.YoYoPlayer 这个类是能直接运行的, 那么编辑 任意一个文本文件,名字如 classifo.txt
Main-Class: com.abc.YoYoPlayer (回车)
注意, 文件必须以回车, 一个新行结束! 文件中还可以有 Class-Path: <你的path路径> 等其它一些信息.
打包命令: jar cvfm YoYoPlayer.jar classinfo.txt com
------将com目录打包成YoYoPlayer.jar, 并且将 classinfo.txt中记录的信息读出, 写入到jar包的清单文件中!
这样打包的 YoYoPlayer.jar 双击即可运行. 或者用命令行 java -jar YoYoPlayer.jar 运行!