Java 응용 프로그램의 시스템 단위 파일을 작성 중이며 시작하는 데 사용되는 Java 버전을 제어하고 싶습니다. 내 (간체 화 된) 서비스 파일은
[Service]
Type=simple
EnvironmentFile=%h/Documents/apps/app/app-%i/app.cfg
ExecStart=${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar %h/Documents/apps/app/app-%i/myapp.jar
SuccessExitStatus=143
시작하려고하면 오류가 다시 발생합니다.
Apr 28 12:43:37 rombert systemd[1613]: [/home/robert/.config/systemd/user/app@.service:7] Executable path is not absolute, ignoring: ${JAVA_HOME}/bin/java ${JAVA_OPT
Apr 28 12:43:37 rombert systemd[1613]: app@1.0.0.service lacks both ExecStart= and ExecStop= setting. Refusing.
나는 그것이 JAVA_HOME
올바르게 설정되어 있다는 것을 안다 . ExecStart
줄을 변경하여 시작한 /usr/bin/java
다음 -DsomeOption=${JAVA_HOME}
잘 볼 수 있는 것처럼 추가 하십시오.
명백한 해결 방법은 래퍼 스크립트를 작성하는 것이지만 서비스 파일을 사용하는 시점을 무너 뜨린다 고 생각합니다.
단위 파일을 사용하여 Java 애플리케이션에 JAVA_HOME을 설정하는 방법