eclipse打包jar时包含第三方jar包的相关问题


我用的是mars4.5版本的eclipse

需求:要把写好的工程打成jar包,并能直接运行。工程用了若干个第三方jar。

在打包的时候,eclipse提供的打包方法不能引用第三方jar包,导致了出现ClassNotFoundException,此时可以采取两种解决方式。

1.自定义 MANIFEST.MF文件 指定Main-Class,Class-Path 并在Class-Path指定的路径下放置第三方jar包

这里写图片描述

注意事项:

  • Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid headerfield;
  • 假设我们的项目打包后为MergePic.jar,那么按照上面的定义,应该在MergePic.jar的同层目录下放置第三方jar包。否则将会现“Exception in thread “main”java.lang.NoClassDefFoundError”的错误;
  • Main-Class后面是类的全地址,比如你的主文件是MergeByTid.java,那么这里就写org.gh.mergePic.service.MergeByTid,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
  • 写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。

2.显然上面的方法在遇到大量第三方jar包时会很麻烦,所以推荐使用eclipse的fat jar插件进行打包,可以将第三方jar包连同工程加入到一个jar包中

安装方法:

  1. Eclipse在线更新方法
    Help > Install New Software > Add,
    name:Fat Jar
    location:http://kurucz-grafika.de/fatjar

此时eclipse4.4以上的版本可能会产生 这个错误,可以点开链接查看解决方法。
Eclipse4.4安装旧版本插件报错 Failed to prepare partial IU
然后再选export就出现了这个选项
这里写图片描述

选上Main-Class,再选上要包含的第三方jar包即可。

这里写图片描述

参考列表
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html
http://blog.csdn.net/wonder4/article/details/39778013


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号