我编写了一个可运行的java应用程序(命令行应用程序)。
我将log4j.xml
放在src/main/resources
中,当我在eclipse中调试应用程序时,它运行良好。
但是当我将它导出到一个可运行的jar文件(排除所有必需的库和资源)时,并在命令行中运行它。
java -jar myapp.jar
,应用程序无法找到log4j.xml
。
警告是:
log4j:WARN No appenders could be found for logger.
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in
fo.
当我将log4j.xml
放到放置myapp.jar
的文件夹时,它再次有效!
如何使用log4j.xml
中打包的myapp.jar
?
答案 0 :(得分:1)
问题是您的log4j.xml
文件最终会出现在jar中的resources
文件夹中。这意味着您的源代码结构错误,或Eclipse不关心它。您的文件夹结构类似于maven项目。如果是,请尝试使用Maven来创建hari文件。这会将log4j配置文件放在类路径根目录中。否则,您可以通过添加系统属性-Dlog4j.configuration=resources/log4j.xml
答案 1 :(得分:0)
我发现了我的问题!〜
我使用了maven,但是通过eclipse扩展了项目。
当我使用mvn assembly:assembly
时,效果很好