我在我的项目里引用了Log4j.jar和dom4j等。
用Jbuilder2006开发的。在Jbuilder2006里能正常运行。可是如果在DOS的Console里运行却提示以下的错误:F:\jb\VisitManage\classes>java Visit.VisitServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logg
er
        at Visit.VisitServer.<clinit>(VisitServer.java:64)
**************************
这是第64行:static Logger lg = Logger.getLogger(VisitServer.class.getName());
*********************************
请问为什么?应该怎么做?
另:我用Jar 把我的项目打包时,是不是也需要把我的项目引用的.jar包也打进去?如何打?谢谢!!!!!!!!!特别感谢!!!!!!!!!!!!!!!
另一100分:
http://community.csdn.net/Expert/topic/4708/4708311.xml?temp=.9855921

解决方案 »

  1.   

    JB2006 打包 要在 Dependencies 中把引用的其他包也选择为include all 才行
      

  2.   

    错误应该怎么解决?我不是用的Jbuilder打包。用的是jar命令。
      

  3.   

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logg
    er at Visit.VisitServer.<clinit>(VisitServer.java:64)
    那你有没有import这个log4j这个包呢?
      

  4.   

    用jar命令可以这样做:
    jar cvfm A.jar A.txt *.class或包
    其中 A.txt中写入
    Mainfest-Version : 1.0
    Main-Class : 你的主类名试试看.
      

  5.   

    那你有没有import这个log4j这个包呢?
    ?????
    如果没有import这个log4j的包。在Jbuilder里也是没有办法运行的。
      

  6.   

    但你用命令行,要设置classpath的把
      

  7.   

    你要把你用到的jar也都打到你的jar里面的。
      

  8.   

    jar cvfm *.jar Manifest.mf *.class *.class  (所有的class和用到的文件)
    Manifest.mf 用记事本写:
    Manifest-Version: 1.0
    Main-Class: *.class          (就写那个主类)
    Created-By: 1.2.2 (Sun Microsystems Inc.)
      

  9.   

    以我的电脑的路径为例:
    D:\jws\iLiveHelpcn你要打包该文件夹下的所有内容:
    先到DOS下面CD 到该目录下
    jar cvf name.jar *.*就可以了要是要加MANIFEST.MF文件的话:
    MANIFEST.MF的可以在记事本里写:
    Manifest-Version: 1.0
    Created-By: Fat Jar Eclipse Plug-In
    Main-Class: iTechEasy.InstallMain
    主要是Main-Class:这里要指定你程序的主函数
    把生成的MANIFEST.MF放到
    D:\jws也就是打包文件的上级目录刚才的打包命令改为:目录也是D:\jws\iLiveHelpcn
    jar cvfm name.jar ..\MANIFEST.MF *.*