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请问是什么原因?

解决方案 »

  1.   

    jdom的包没导入吧?
    eclipse打包,manifest不用自己写的,指定main class,自动生成的
      

  2.   

    org/jdom/Content
    这是外部的类吗?
    如果是,把这个类文件放到和你打包的文件在一起。
      

  3.   

    去下个fatjar的插件,打成一个jar就搞定了
      

  4.   


    jdom的包没导入吧? jdom的包导入了,生成的jar 包中有该类,我是把它放在lib 下的,lib中的jar 在打包时是否包括?
      

  5.   

    去下个fatjar的插件,打成一个jar就搞定了
    还有,Manifest.txt,建立一个文件清单,指明你引用的jar的路径。
    内容:
    Manifest-Version: 1.0
    Main-Class: .lib\org.jdom.Content.jar    (lib为路径)
    确保你引用的jar在路径上。
      

  6.   

    我共享一个我用来打包的模子,可以同时打入外部的类的包,在你的项目目录下建立一个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文件了
      

  7.   

    楼上的问题很明显:
    在Eclipse打包的时候,有一步是选择Main所在的类,你没有选择。
    仔细看这一步