我刚开始玩春靴。
在“资源”下有两个文件:
-- resources
-- application.properties
-- log4j2.xml在开发环境中,一切都很好。
在生产环境中,我复制两个文件并将它们放在app.jar旁边:
-- app_folder
-- my-app.jar
-- application.properties
-- log4j2.xml当我启动my-app.jar时:
它不是应该从盒子里往这边走吗?我做错什么了?
发布于 2018-07-24 16:10:05
我所要做的就是把一个名为
name-of-my-spring-boot-jar-file.conf在与jar文件本身相同的目录中。conf文件的内容:
JAVA_OPTS="-Dlog4j.configurationFile=/home/<user>/log4j2.xml"发布于 2018-07-24 12:00:54
你为什么认为它是那样工作的?
的确,根据其文档,如果application.properties与jar文件放在同一个目录中,那么Spring将正确地检测它。
尽管如此,log4j2.xml不是由Spring读取的,而是由Log4J2框架读取的,根据其文档,框架oly在类路径上查找文件。
如果文件位于其他地方,则需要指定如下路径:
java -Dlog4j.configurationFile=path/to/log4j2.xml -jar my-app.jar编辑:
java是一个可执行文件,所以在启动我的-app时不调用'java‘命令。
是的你知道。即使您是从GUI调用它(例如。(在Windows中双击资源管理器)它仍然在引擎盖下运行java -jar my-app.jar。
app.jar不是驻留在被认为是类路径的同一个文件夹中吗?
再说一次,你为什么要假设它是?
在Java文档(这里 for Folders and Archive Files 8)一节中,它清楚地指出,如果类存储在jar中,那么类路径只包含来自jar的内容(尽管在Spring中,由于定制的类加载器,它还包括嵌入在jar中的jar,但是通常情况下不包括jar-参见可执行Jar格式)。
在尝试使用以前没有使用过的任何框架/库/编程语言之前,您确实应该阅读文档(至少是其中的相关部分)--从长远来看,它将节省大量时间。
https://stackoverflow.com/questions/51497851
复制相似问题