网上打包的教程不少, 可是本身动手总归出现各类各样的问题,本身总结下:html
因为刚刚接触JAVA,作了一个简单的java project 项目, 可是包含第三方的jar包, 结果打包的时候就出现问题了。 java
主要缘由是一直报“Exception in thread "main" java.lang.NoClassDefFoundError“的错误, 我一开始觉得打包的jar包中应该包含第三方的JAR包,结果死活报错,原来并非这样,运行jar包时,会根据 MANIFEST.MF中的Class-Path 的路径去读取。spa
好了,说下打包流程.net
1. 先看下文档目录和最后打包的效果htm
能够看到,打包完后,第三方jar并不在程序包内。blog
2. 配置MANIFEST.MF文件,程序打包时会用到。教程
2.1 在项目下新健一个文件夹ip
2.1 在该文件夹下新健一个MANIFEST.MF文件, 配置对应的属性文档
3. 打包程序, 不包含第三方JAR包io
3.1 点击 file > export
3.2 选择 jar file, 点击next
3.3 选择 项目打包文件,录入一个生产jar的路径(只须要项目文件, 不包含第三方jar以及MANIFEST.MF; 同时也不包含.classpath 和.project)
3.4 点击选择已经存在的装配单
3.5 一直到结束
4. 经过java -jar xxx.jar 来运行, 可是这里须要注意要关联第三方Jar包, 怎么关联, 会程序会经过 MANIFEST.MF中的Class-Path去寻找。因此最终要运行jar报的结构以下。
做为刚学JAVA的人会有点小折腾。
参考资料
http://www.open-open.com/lib/view/open1397303218919.html
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html
http://bbs.csdn.net/topics/350163956