java 自定义Sping Boot 可执行jar启动脚本

qpgpyjmq  于 2023-02-14  发布在  Java
关注(0)|答案(2)|浏览(102)

我尝试在Linux机器上运行使用spring-boot-maven-plugin构建的Spring Boot executable-jar。该机器安装了多个jdk,PATH中的jdk8是jdk8,不幸的是无法更改它。但是我的executable-jar需要jdk17,所以当我启动它时,我得到了UnsupportedClassVersionError
我按照官方文档创建了相应的. conf文件来覆盖JAVA_HOME,但这似乎并没有解决问题:

[root@ios-maket updater-new]# ls
updater-new-3.0-SNAPSHOT.conf  updater-new-3.0-SNAPSHOT.jar
[root@ios-maket updater-new]# cat updater-new-3.0-SNAPSHOT.conf
JAVA_HOME=/opt/jdk-17/bin/java
[root@ios-maket updater-new]# ./updater-new-3.0-SNAPSHOT.jar
Application is running as root (UID 0). This is considered insecure.
Exception in thread "main" java.lang.UnsupportedClassVersionError...

另一方面,如果我手动运行它,一切工作正常:

[root@ios-maket updater-new]# /opt/jdk-17/bin/java -jar ./updater-new-3.0-SNAPSHOT.jar
[main] INFO com.icl.ios.fias.updaternew.UpdaterNew - Starting UpdaterNew using Java 17.0.6

我哪里做错了?

jljoyd4f

jljoyd4f1#

设置JAVA_HOME是不够的,还需要设置PATH指向JAVA_HOME/bin

JAVA_HOME=/opt/jdk-17
PATH=${JAVA_HOME}/bin:$PATH
java -jar updater-new-3.0-SNAPSHOT.jar
ctehm74n

ctehm74n2#

尝试使用-Dloader.path运行jar,手动指定配置。

java -Dloader.path=./updater-new-3.0-SNAPSHOT.conf -jar ./updater-new-3.0-SNAPSHOT.jar

如果这仍然不起作用,那么可能是你的配置文件有问题,但从我所看到的,你的配置文件看起来不错,除非java路径不正确。

相关问题