在单个Ubuntu 18.04.4 LTS服务器上使用不同的Java版本

在单个Ubuntu 18.04.4 LTS服务器上使用不同的Java版本,java,jenkins,Java,Jenkins,我有一台在Java8上工作的Jenkins服务器,但他应该在部署之前安装mvn。但是编译后的应用程序使用Java14 安装Java14后,Jenkins开始崩溃 $ sudo service jenkins start Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and &quo

我有一台在Java8上工作的Jenkins服务器,但他应该在部署之前安装
mvn
。但是编译后的应用程序使用Java14

安装Java14后,Jenkins开始崩溃

$ sudo service jenkins start Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
使用Java14

$ java -version
java version "14.0.1" 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
詹金斯没有工作

我如何确定Jenkins使用第8版运行什么,而我的应用程序使用第14版编译,没有Docker

也许我可以使用第8版的JRE和第14版的编译器?或者将第8个用作活动项,第14个仅用于编译,但如何使用

爪哇:


Ubuntu:Ubuntu18.04.4LTS

我不是Java/Jenkins开发者。 通常,在涉及多个程序版本的情况下,如果应用程序支持这种配置,那么将应用程序配置设置为使用特定的Java版本效果最好。您应该检查是否可以指定Jenkins或编译器来使用特定的Java环境。 如果不可能,那么尝试使用环境变量。首先,将Java14设置为默认值,以便编译器获得最新版本。其次,在启动Jenkins服务器之前,暂时更改Java环境,以便Jenkins在运行时看到Java 8

$export JAVA_HOME=“/usr/lib/jvm/JAVA-1.8.0-openjdk-amd64”\
&&导出路径=$JAVA_HOME/bin:$PATH\
&&java-jar jenkins.war——httpPort=8080
另一方面,在这些场景中使用Docker确实是一个好主意。你应该考虑一下。

我希望这有帮助

$ update-java-alternatives --list
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-14-oracle                 1091       /usr/lib/jvm/java-14-oracle