我尝试在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
我哪里做错了?
2条答案
按热度按时间jljoyd4f1#
设置
JAVA_HOME
是不够的,还需要设置PATH
指向JAVA_HOME/bin
。ctehm74n2#
尝试使用-Dloader.path运行jar,手动指定配置。
如果这仍然不起作用,那么可能是你的配置文件有问题,但从我所看到的,你的配置文件看起来不错,除非java路径不正确。