Eclipse将引用的第三方jar包一起打成一个jar包(fat jar)

时间:2021-10-30 09:13:54

项目中遇到下面相同的问题,引用如下:

--------------------------------------------------

今天做个小的java程序,想要先将其导出成一个可执行的jar包!向往常一样,单击菜单栏中的 File -> export,弹出个对话框,选中 Java ->Jar file,单击 next 按钮,选中要导出的工程的文件,选好导出的路径,然后单击 next 的按钮,再单击 next 按钮,在此弹出的对话框中选中主类,单击finish按钮,一个jar包就顺利的被导出了! 

     于是就找到了那个jar文件,双击了下,没反应!什么问题?按照往常的经验来说,应该双击就可以运运行了,但是很奇怪的双击了以后,什么事情也没有发生!也看不到任何的错误信息,于是就直接在命令行中运行吧,顺便看下错误信息!于是在命令行中输入 Java -jar name.jar,结果错误信息出来了,看了下大致的意思是我引用第三方jar包中的所有的类找不到,奇了怪了! 

     上了网查了下,网上的都是说要修改jar中MANIFEST.MF配置文件,然后将引用的第三方jar包拷贝到导出的jar中。就照着网上的说法做了遍,可是还是没能解决问题,很是郁闷。不经意间想到一般的Java project中都自动生成系统库,所有的库包都是放在本地的jdk的安装目录中,所以的话我可以直接将第三方包拷入到这些目录中,这样的话就不存在找不到第三方包的问题了! 

     于是将第三方包直接拷贝到jdk得安装目录中的jre/lib/ext/中,这时候我们需要重启一下Eclipse,这样才能将刚才的那个包加载进自动生成的系统库中,这时候按照上面的做法打包出来的jar包就能够直接运行了! 

     但是这种方法有个很明显的缺点,那就是一旦jar包放到其他的机器上就会出现先前的错误!后来问了下群里的朋友,推荐了款基于Eclipse的专门打jar包的一个插件,也就是 Fat jar插件,上网搜了个,是个zip文件。解压缩后打开是个jar包,网上也说了只需将其放在Eclipse的插件安装目录即可,于是打开Eclipse的插件安装目录,找到plugins的目录,直接将jar包放进去。这时候Eclipse中还是没法使用,我们必须先重启下Eclipse!关掉Eclipse后,在命令行中输入 Eclipse -clean的命令,这时候插件就装进去了!怎么看是否安装上去了?直接在 Package Explorer中选中项目文件,右键单击在下拉菜单中会有 Build Fat Jar的选项,选中后一步一步的做下去,期间要勾选第三方的jar包,最后打成jar包,单击程序可以运行了! 

     很是不解的我于是就想探个究竟,为什么开始我怎么配置都无法运行了! 于是我就将 Fat Jar 打包出来的jar包解压缩后翻了一遍,顿时无语了。Fat Jar 狠的我无语了,直接将第三方jar包给解压了,然后统统放在目标jar包中,这样的话的确不会出现开始的错误,但是这也未免有点...... 

     呵呵,不管怎么样,为题始终还是解决了,休息下......  

--------------------------------------------------

经过测试,很好的解决了问题,感谢ing...

提供插件下载地址:http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924

解压将文件夹拷贝到eclipse的plugins下,重新启动Eclipse3.1,Windows=>prefernce=>fat jar preference看到他就说明已经安装成功了。

再在FILE菜单下,用Export..=>其他=>向导里有fat jar =>,接着就可以按着向导使用了