多项目相互依赖的Java程序打包并引入外部Jar包方式打赏

近期给项目的某些功能加了个J2SE的小工具,主要是用Swing编写的,写好之后需要打包jar,但是出现了丢包的错误,确切的说是打包不完全,因为所引用的jar不是在一个项目中,而是几个项目相互依赖的情况下且各个项目还有相应的第三方包,公司内部还限网,几经周折,今天总算解决了。

使用的是eclipse,ibm rtc封装的,貌似是3.X版,最初试过将依赖包全部复制到主函数所在项目再打包,发现还是不能实现,也使用了Fatjar,但似乎并不好用。料想大家平时用Fatjar都是引入第三方包而已,于是尝试了将主程序所依赖的两个项目先打包后再导包,然后打包,依然不行。因为eclipse不支持同时导出外部jar包。

下面说下最终实现的打包方式,按照eclipse常规的打包功能:

选中工程--->右键,Export--->Java--->选择JAR file--->next-->选择jar file的路径及名称--->next--->next 选择Main class--->finish。此时来到了要选择Main class的窗口,但这里先不选择Main class,选择最上方的Generate the manifest file(生成清单文件),勾上Save the manifest in the workspace(将清单保存在工作空间中),在Manifest file(清单文件)中输入file的名称,点击finish。至此会生成manifest文件。

继续选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next,这时又来到了选择main class的窗口,但这里也不选择main class,选择Use existing manifest from workspace,在Manifest file:里选择刚刚生成的main,点击finish。

如果是单个项目的打包至此就基本完成了,剩下的就是编辑manifest.mf写入外部jar清单了,格式如"lib/xxx.jar lib/yyy.jar lib/zzz.jar",如此将需要的外部包都引入。

同理,如果是多个项目,则在打包时选择jar file后选中需要打包的所有项目,一起打包,然后同样编辑manifest.mf,写入第三方jar包。

需要注意的是,这样打包之后,第三方的jar包放在和打包生成的jar同级目录即可,manifest.mf的格式如下:

Manifest-Version: 1.0
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties
Class-Path: lib/xxx.jar lib/yyy.jar lib/zzz.jar


且按照网上的说法,manifest.mf文件最后要空出两行。
exportjar
最终得到如图一个文件,一个文件夹,直接运行即可,也可以建一个bat文件来处理。这里不再多说。

多项目相互依赖的Java程序打包并引入外部Jar包方式
文章《多项目相互依赖的Java程序打包并引入外部Jar包方式》二维码
  • 微信打赏
  • 支付宝打赏

已有16条评论

  1. 您好,我想问下,打好的jar包不能运行吧,脚本怎么写啊?

    2016-03-19 09:33 回复
  2. 康又菁

    好啊~~~~~~

    2015-12-31 08:51 回复
  3. 何捷浪

    好厉害!好~萌菌网www.moejun.tv/

    2015-04-27 10:20 回复
  4. 分条机刀片

    这么深奥的东西楼主也会?

    2012-10-13 22:21 回复
  5. 日照婚纱摄影

    恩,很不错,前些日子还愁这打包文件呢

    2012-09-29 17:01 回复
    • 朴人博客

      我是愁了两周,中间没去管,最后用得着了才赶工的

      2012-09-29 20:34 回复
  6. 韩版连衣裙

    学习java的可以看下

    2012-09-28 16:42 回复
  7. 蓝颜

    这个好,搞java的值得收藏

    2012-09-28 10:22 回复

(必填)

(必填)

(可选)