Java 当由systemd启动时,不会加载Spring外部配置文件

Java 当由systemd启动时,不会加载Spring外部配置文件,java,spring,spring-boot,systemd,Java,Spring,Spring Boot,Systemd,我正在开发和测试一个基于Spring boot的java应用程序 我将外部配置文件“application.yml”存储在“config”文件夹中,该文件夹与部署服务器中相应的jar文件(“nlp-0.0.1-SNAPSHOT.jar”)并排放置(根据“”) 这是我的“application.yml”文件 只要我手动启动应用程序,这就可以完美地工作: java -jar nlp-0.0.1-SNAPSHOT.jar 但是,当我尝试通过systemd命令启动应用程序时: sudo systemc

我正在开发和测试一个基于Spring boot的java应用程序

我将外部配置文件“application.yml”存储在“config”文件夹中,该文件夹与部署服务器中相应的jar文件(“nlp-0.0.1-SNAPSHOT.jar”)并排放置(根据“”)

这是我的“application.yml”文件

只要我手动启动应用程序,这就可以完美地工作:

java -jar nlp-0.0.1-SNAPSHOT.jar
但是,当我尝试通过systemd命令启动应用程序时:

sudo systemctl start  nlp.service
应用程序启动,但未加载“config”文件夹中的配置文件“application.yml”

这是我的“nlp.service”文件


那么,问题是什么?我遗漏了什么吗?

也许你应该尝试在你的服务中指向选项
“WorkingDirectory”
。 例如,如果您的应用程序位于
/home/wjz/nlp-0.0.1-SNAPSHOT.jar
中,而
application.yml
位于
/home/wjz/config
中,那么
工作目录=/home/wjz/

sudo systemctl start  nlp.service
[Unit]
Description=NLP Service

[Service]
User=wjz
ExecStart=/usr/bin/java -jar /home/wjz/nlp-0.0.1-SNAPSHOT.jar
[Install]
WantedBy=multi-user.target