【发布时间】:2020-04-12 19:16:24
【问题描述】:
我正在尝试使用最新版本在 Windows 上设置 Hazelcast log4j 日志记录。
我添加了配置:
<properties>
<property name="hazelcast.logging.type">log4j</property>
</properties>
我从 hazelcast bin 文件夹中运行以下命令:
java -jar ..\lib\hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer
这会产生以下错误:
Dec 20, 2019 8:44:56 AM com.hazelcast.config.AbstractConfigLocator
INFO: Loading 'hazelcast.xml' from the working directory.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at com.hazelcast.logging.Log4jFactory.createLogger(Log4jFactory.java:29)
at com.hazelcast.logging.LoggerFactorySupport$1.createNew(LoggerFactorySupport.java:32)
...
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader.findClass(Unknown Source)
...
我看到 Hazelcast 需要 log4j 版本 1.2.17,所以我从 maven 下载了它并将它放在一个文件夹中。然后我运行了以下内容:
java -cp ..\..\log4j\log4j-1.2.17.jar -jar ..\lib\hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer
但是,我了解到您不能在同一语句中指定类路径和 jar。 hazelcast jar 不包含 log4j jar 文件。打包时似乎应该。
谁能帮忙解决这个问题。
【问题讨论】:
-
你可以试试
java -cp ..\..\log4j\log4j-1.2.17.jar;..\lib\hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer(如果你已经知道主类名就不用-jar了) -
感谢您的回复。试过了,同样的错误。
-
org.apache.log4j.Logger类包含在 log4j jar 中,你不应该有 NoClassDefFoundError。你能仔细检查一下文件夹和文件名是否正确吗? -
你说得对,我遇到了路径问题。感谢那。现在我只需要弄清楚如何告诉 log4j 如何获取配置文件。
-
如果您将其作为答案提交,那么我会打勾
标签: java windows log4j hazelcast noclassdeffounderror