当前位置: 代码迷 >> J2SE >> eclipse 打包有关问题
  详细解决方案

eclipse 打包有关问题

热度:65   发布时间:2016-04-24 15:00:07.0
eclipse 打包问题!
Exception   in   thread   "main "   java.lang.NoClassDefFoundError:   org/jdom/Content

我再使用eclipse   打包,然后通过java   jar   运行程序,

提示:java.lang.NoClassDefFoundError

我的Manifest.mf   文件内容如下:
Manifest-Version:   1.0
Main-Class:   com.idsp.testcase.IdspTest

请问是什么原因?

------解决方案--------------------
org/jdom/Content
这是外部的类吗?
如果是,把这个类文件放到和你打包的文件在一起。
------解决方案--------------------
去下个fatjar的插件,打成一个jar就搞定了
------解决方案--------------------
去下个fatjar的插件,打成一个jar就搞定了
还有,Manifest.txt,建立一个文件清单,指明你引用的jar的路径。
内容:
Manifest-Version: 1.0
Main-Class: .lib\org.jdom.Content.jar (lib为路径)
确保你引用的jar在路径上。
------解决方案--------------------
我共享一个我用来打包的模子,可以同时打入外部的类的包,在你的项目目录下建立一个build.xml的文件,内容如下,你注意要把文件的路径写对了.写了这个文件后,所有的项目都用它打包,非常方便

<?xml version= "1.0 "?>

<project name= "Demo " default= "CreateExecutableJarFileWithExternalLibrary ">
<target name= "CreateExecutableJarFileWithExternalLibrary ">
<jar destfile= "你要生成的文件名,以.jar结尾(例如 test.jar) ">
<zipfileset dir= "项目中的package名称(例如 package1) "> "
prefix= "该package在生成的jar文件里的名称,一般同名即可 " />
<zipfileset dir= "项目中的package名称(例如包中的包 package1/package2) "
prefix= "例如 package1/package2 " />
<zipfileset src= "外部的类的包(例如: ./jfreeChart/jfreechart-1.0.3.jar) " />
<manifest>
<attribute name= "Main-Class " value= "指定main()所在的类,也就是程序的入口
(例如 package1.MyTestFrame) "/>
</manifest>
</jar>
</target>
</project>

你写好这个文件后,在Eclipse里面刷新一下你的项目就能看到build.xml,然后右键点它,在菜单中选
Run As -> Ant Build 就能生成可单独运行的jar文件了
------解决方案--------------------
楼上的问题很明显:
在Eclipse打包的时候,有一步是选择Main所在的类,你没有选择。
仔细看这一步
  相关解决方案