使用Log4j2 2.10.0运行Java 9模块
我正在尝试运行我创建的Java 9模块,它使用Log4j2 2.10.0。
我遇到的问题是我得到了一个
java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil
在做LogManager.getLogger()
。 它找到了LogManager类,但是当它从StatusLogger
内部调用new PropertiesUtil("log4j2.StatusLogger.properties")
,它会得到上述错误。
如何修复/找到解决方法?
添加信息:
堆栈跟踪:
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil at org.apache.logging.log4j/org.apache.logging.log4j.status.StatusLogger.(StatusLogger.java:71) at org.apache.logging.log4j/org.apache.logging.log4j.LogManager.(LogManager.java:60) at com.EvolutionarySoftwareSystems.Utilities/com.EvolutionarySoftwareSystems.Utilities.Base.DebugAble.(DebugAble.java:45)
更奇怪的是我可以直接调用invoke:来自我的代码的new PropertiesUtil("string")
,它找到了类。
我正在使用日食氧气4.7.1a。
我的eclipse启动配置文件:
模块文件:
module com.EvolutionarySoftwareSystems.Evolver { // // // Export the com.EvolutionarySoftwareSystems package // requires com.EvolutionarySoftwareSystems.Base; requires com.EvolutionarySoftwareSystems.Utilities; requires com.EvolutionarySoftwareSystems; requires java.base; requires java.xml; requires org.apache.logging.log4j; requires transitive xercesImpl; // exports com.EvolutionarySoftwareSystems.Evolver; // // provides com.EvolutionarySoftwareSystems.LsysEx.App.Main; }
Log4j有一个问题, 请访问https://issues.apache.org/jira/browse/LOG4J2-2129 。
要么使用2.9,要么使用2.10和我在该票证中提供的解决方法,或者使用2.11,这是在几天前发布的并修复了问题。