问题如题,
我在用eclipse打包成jar,运行时已经将log4j的jar包放到了执行jar的同一个目录下,而且也在classpath中加入了lo4j的路径;
使用过java -jar xxx.jar和 java -classpath log4j路径 -jar xxx.jar都报如下错误:Exception in thread "main" java.lang.NoClassDefFoundErrot: org/apache/log4j/Logger
at main.主类名应该是找不到log4j的包
各位支下招,怎么可以让他找到log4j的包呢?

解决方案 »

  1.   

    set CLASSPATH=xxxpath\log4j.jarjava -jar xxxx.jar
      

  2.   

    eclipse的classpath 和环境的classpath是不同的,写一个ant脚本配置eclipse的classpath
      

  3.   

    把log4j的jar包和class文件打到一个jar包里面,设置好classpath和mainclass就可以了!
    用fatjar打包不错!
      

  4.   

    请楼上给出具体的例子
    我这么做了也不行
    我的目录结构
    --test
      Test.class
    --lib
      log4j.jar
    --META-INF
      MANIFEST.MFMANIFEST.MF的内容
       Main-Class: test.Test
       classpath: lib/log4j.jar   
      
      

  5.   

    偶解决了
    是用getResourceAsStream搞定的
      

  6.   

    lz你写的classpath: lib/log4j.jar 
    少了一个点而且classpath写的也不对,改成 Class-Path: .\lib\log4j.jar
    需要调用的jar包也不用打到你的jar包里,配置MANIFEST.MF的时候写好路径就好。
    调用的时候就是java   -jar   xxxx.jar mainclass
    我也遇到这个问题,后来改成这么写就好了.说出来都不好意思,为了这么个问题弄了2天-_-