要求:生成一个可执行的 jar包,同时jar项目依赖于另外的jar文件。需要将依赖的jar文件也打包到目标中。
项目地址:
https://github.com/joedan0104/JAXMLEditor
工作原理:
1、将当前项目生成jar包。因为当前项目含有依赖库,执行的时候会有问题。
2、将所有的jar文件解压到一个目标目录,将jar文件源码进行合并;
解压的时候可以采用解压缩工具。
如图所示,app.jar是包含可执行类的jar包,kxml2-2.3.0.jar和xmlpull_1_1_3_4c.jar是项目
的两个依赖库。
将他们进行解压,然后将kxml2-2.3.0和xmlpull_1_1_3_4c中的class和资源文件都合并到app目录下。
注意:MANIFEST.MF文件会有冲突,直接替换就可以。
3、生成目标文件的MANIFEST.MF文件。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.5.0_03-b07 (Sun Microsystems Inc.)
Main-Class: cn.wjdiankong.main.Main
在其中追加入口类的定义:
Main-Class: cn.wjdiankong.main.Main
注意:Main-Class:之后有个空格。main函数的入口类。
4、将目标class和资源重新打包生成jar。
在app目录下,命令行中执行:
$ jar cvfm [目标jar名字] meta-inf/manifest.mf .
jar cvfm JAXMLEditor.jar meta-inf/manifest.mf .
注意最后的“.”。
5、验证是否有效。
$ java -jar JAXMLEditor.jar
看输出信息。