如何运行不同版本的多个 Java 应用程序?

如何运行不同版本的多个 Java 应用程序?

我使用的是 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环境变量。

相关内容