运行java jar命令时找不到log4j属性文件

时间:2017-08-16 16:40:51

标签: java maven log4j2

我有一个应用程序,它使用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命令不可用?

任何帮助都会非常感激

由于

3 个答案:

答案 0 :(得分:1)

当你以mvn exec:java运行它时,Maven会处理类路径。您的jar可能不包含该配置文件。尝试使用-cp参数将该配置文件添加到类路径中。

答案 1 :(得分:0)

当类路径上有多个版本的Log4j2时,我看到Unrecognized format specifier错误。你试图执行的jar中有什么?请确认它只包含不超过一个Log4j2版本的类。

答案 2 :(得分:0)

请参阅我的回答here。发生这种情况是因为生成的jar不包含log4j2所需的.dat文件。

相关问题