How Do I Run Mutiple Java Applications with Different Versions?

How Do I Run Mutiple Java Applications with Different Versions?

I am using Ubuntu 18.04 LTS and I have 2 apps which need to run with different Java versions. My 1st app (Mirth Connect) needs to run on jre1.8.0_171 and my second app (Power Assist) needs to run on 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        

How do I make my 1st app to work with 3 and my 2nd app to work with 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 Answer

Your best bet would probably be to launch these applications from scripts, where you first change some of the environment variables.

export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

The first change causes the java executable at /usr/lib/jvm/java-11-openjdk-amd64/bin/ to be the one that is found when you launch java. The second change updates the JAVA_HOME environmental variable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.