java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger报错
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger 报错
错误提示:
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger 报错 (lib 包没有导入)
第一步、检查 maven 的配置:
maven 管理的项目, 里面已经引入了 log4j 的包
maven 引入如下:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>compile</scope>
</dependency>
确定引入了 log4j 的包。
第二步、检查 builder 的项目
在编译的过程中,已经包括了 log4j 的包。
第三步、检查部署
错误的项目是没有 maven dependencies 这一项的,需要 add,选择 add 按钮,
添加以后,然后,从新部署下项目。成功运行!
========================================
上面这些是网上找的,但是我并没有用到。
但是另一个同事却是用到了上文的 第三步 解决了同样的问题,故在这里标记下。
我的问题是:
从 svn 检出一个项目,运行就报错, by cause :java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger
问题处理方法:
但是检查项目,发现 jar 包都在,项目名上有个小红叉号,但是项目里面代码中又没有问题,在 problems 窗口 显示 是项目 编译错误
检查该项目的 pom 文件,发现 其依赖了两个本地的其他 maven 项目,于是想着把 其依赖的另外两个项目 maven install 一下,结果发现 install 居然报错,无法安装到 仓库,
经过一番折腾,发现是 Eclipse 的 preference 中的 Java—— Installd JREs 中的 路径配置成了 jre 的目录,将其改为 jdk 的目录 后,再 install 就可以了。
将两个被 依赖的 项目 install 完成后,再次 启动原来报错的目标项目,就不报错了。