我使用的是 Ubuntu 18.04 LTS,有 2 个应用程序需要使用不同的 Java 版本运行。我的第一个应用程序 (Mirth Connect) 需要在 jre1.8.0_171 上运行,而我的第二个应用程序 (Power Assist) 需要在 java-11-openjdk-amd64 上运行。
$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
2 /usr/lib/jvm/jdk-16.0.2/bin/java
3 /usr/local/java/jre1.8.0_171/bin/java
如何使我的第一个应用程序与 3 一起工作并且使我的第二个应用程序与 1 一起工作?
$ sudo gedit /etc/profile
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
JAVA_HOME=/usr/local/java/jre1.8.0_171
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
答案1
最好的选择可能是从脚本启动这些应用程序,首先更改一些环境变量。
export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
第一个更改导致java
可执行文件/usr/lib/jvm/java-11-openjdk-amd64/bin/
成为启动时找到的可执行文件java
。第二个更改更新JAVA_HOME
环境变量。