【发布时间】:2018-02-13 13:59:07
【问题描述】:
我正在尝试让 log4j2 在 Netbeans 中工作。无论我做什么,我都会收到以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
at java.lang.ClassLoader.defineClass1(Native Method)
...
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)14
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
我正在按照此处的说明进行操作 Setting up log4j2 并尝试运行相同的演示程序。
我试图找到解决方案并找到了这个帖子。 Similar Problem here
这篇Class not found 的帖子与我的问题完全相同,但没有发布有效的答案。
我已将 log4j-core-2.8.2.jar 和 log4j-1.2-api-2.8.2.jar 添加到项目库中。这两个文件安装在主 src 文件夹的子文件夹中,因此它们位于类路径中。
Netbeans 安装在新的 Ubuntu 版本上。令人沮丧的是,我能够在 Windows 机器上运行它。
我尝试用这个 logdemo 类创建一个全新的项目。我将 log4j2 jar 文件添加到库中。我还添加了命令-Dlog4j.configurationFile=/home/test/config/log4j2.xml
到 Run> VM Options 框。
我仍然收到完全相同的错误消息。
我检查了我的安装。
dazz@mimir:~$ java -version
java 版本“1.8.0_144” Java(TM) SE 运行时环境 (build 1.8.0_144-b01) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.144-b01,混合模式)
我在setting Java Environment in Ubuntu 上找到了这篇文章。我原以为使用 apt-get 会设置环境,但我可能错了。
我检查了 /etc/environment 。那里没有提到Java。 .bash.rc 中也没有导出 java 路径。 /etc/profile 中没有 java。
似乎有很多地方可以设置路径。我发现这篇文章Setting PATH variables in Ubuntu。它既现代又乐于助人。 我还发现了这个帖子Setting Java path variables in Ubuntu
我将以下内容添加到我的主页配置文件 ~/.profile
JAVA_HOME=/usr/lib/jvm/default-java
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
注意使用default-java。这是 JDK 的符号链接。我希望如果/当我升级到下一个版本时,apt-get 会更改链接。
重启 Ubuntu 后查看是否解决了问题,没有变化。
欢迎提出任何找出问题原因的建议。
【问题讨论】:
标签: java ubuntu netbeans path environment-variables