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

我用的是mars4.5版本的eclipse

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

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

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

注意事项:

1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;

2、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在 KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件
在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;

3、Main-Class后面是类的全地址,比如你的主文件是KillCheatFans.java,文件里打包为package com.main; 那么这里就写com.main.KillCheatFans,
不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;

4、写完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包即可。

 

posted on 2016-03-09 21:02  nice-gh  阅读(3492)  评论(0编辑  收藏  举报

导航