Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger

在继承开发用直接运行类,没有问题,但是在控制台就不行了。
D:\Workspaces\getdata\bin>java com.getdata.timer.DBReader
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
说没有找到log4j.
log4j已经放到项目的lib下。在集成环境中可以执行的。
叼,万恶的控制台。

对于外部的jar包,你要加入到环境变量中,否则在命令行中肯定是找不到的,集成环境下,是自动帮你加入了java运行的环境变量中的,所以没有问题。
有两个方式解决上述问题:1)上面的命令中运行的时候加入:-classpath <log4j的jar文件的路径>
变成>java -classpath <log4j的jar文件的路径> com.getdata.timer.DBReader
2)把log4j的jar文件的绝对路径放入系统的环境变量中(我的电脑-属性-高级-环境变量-》设置即可)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-29
dos 启动的话,直接把log4j 的配置文件丢到src 下面 。
第2个回答  2020-10-24
将log4j解压后,将apache目录拷贝到发布后程序的org中就可以。
相似回答