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所在的类,你没有选择。
仔细看这一步