gpt4 book ai didi

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/logging/log4j/LogManager 中出现异常

转载 作者:行者123 更新时间:2023-11-30 02:24:23 24 4
gpt4 key购买 nike

我正在尝试让 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到“运行”>“VM 选项”框。

我仍然收到完全相同的错误消息。

我检查了我的安装。

dazz@mimir:~$ java -version

java版本“1.8.0_144”Java(TM) SE 运行时环境(版本 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 的符号链接(symbolic link)。我希望如果/当我升级到下一个版本时,apt-get 会更改链接。

重启 Ubuntu 后查看是否解决了问题,没有任何变化。
欢迎任何找出问题原因的建议。

最佳答案

我在 Windows 10 PC 上安装了 Netbeans,但仍然出现相同的症状,因此我认为问题一定出在 jar 文件上。

我找到了解决方案。我使用 log4j-core-2.8.2.jar 和 log4j-1.2-api-2.8.2.jar 而不是 log4j-api-2.3.jar 和 log4j-core-2.3.jar。

无论出于什么原因,2.3 版本可以工作,而 2.8.2 版本则不能。当我更改 jar 文件时,程序在 Win 10 和 Ubuntu 下编译并运行,没有错误。

我对此非常恼火。我正在学习 Java,我喜欢这门语言,但我花在解决问题上的时间比编写代码要多得多。演示程序编译正常,仅在运行时出现错误。让 Stackoverflow 成为如此优秀资源的经验丰富的程序员并没有发现这个问题,他们为什么要发现这个问题。神秘的错误消息没有提示问题的根本原因。不应该这么困难。这是非常令人沮丧的。

关于java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/logging/log4j/LogManager 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46052145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com