我有一个应用程序,它使用log4j对许多应用程序具有依赖性。
当我使用
运行该应用程序时mvn exec:java
一切正常,但是当我想使用
将其作为独立的Java应用程序运行时java -jar
我收到很多错误:
ERROR StatusLogger Unrecognized format specifier [d]
...
原因是无法找到log4j2配置。
我知道
上存在针对该问题的解决方案Log4j2 configuration not found when running standalone application builded by shade plugin
但我确实使用maven程序集插件而不是maven shade插件,因此我无法使用该变换器。 此外,我真的很想详细了解这个问题。如何使用maven命令并且第二个java命令不可用?
任何帮助都会非常感激
由于
答案 0 :(得分:1)
当你以mvn exec:java运行它时,Maven会处理类路径。您的jar可能不包含该配置文件。尝试使用-cp参数将该配置文件添加到类路径中。
答案 1 :(得分:0)
当类路径上有多个版本的Log4j2时,我看到Unrecognized format specifier
错误。你试图执行的jar中有什么?请确认它只包含不超过一个Log4j2版本的类。
答案 2 :(得分:0)
请参阅我的回答here。发生这种情况是因为生成的jar不包含log4j2所需的.dat文件。