Rate this page:
This article explains how to configure the terminal of mac/unix based systems to quickly change the JAVA_HOME variable to point to a specific version of java.
This allows you to easily switch between Oracle Java 8, Oracle Java 11 or Adopt OpenJDK 8 for example.
Please note, you should ensure that the Atlassian server product you're intending to start using AMPS / Atlassian Plugin SDK is compatible with the Java version you've selected (via the Supported Platforms page).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
# Function to switch JDK versions
function setjdk() {
echo "Select the java version you wish to switch to from the following:"
echo
options=()
count=-1
while IFS= read -r line
do
if [[ ! "$line" == M* ]] && [[ ! "$line" == /* ]] && [[ ! -z "$line" ]]; then
options+=("$line")
((count++))
echo '['"$count"']'${options["$count"]}
fi
done < <(/usr/libexec/java_home -V 2>&1)
echo
read -p "Please chose a value from the options above: " selectedOption </dev/tty
if [ "$count" -ge "$selectedOption" ] && [ "$selectedOption" -ge '0' ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
removeFromPath "$JAVA_HOME/bin"
stringArray=(${options["$selectedOption"]})
export JAVA_HOME="${stringArray[@]: -1}"
export PATH="$JAVA_HOME"/bin:$PATH
echo "JAVA_HOME is set to be ${JAVA_HOME}"
else
echo "Invalid option, JAVA_HOME was not set"
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
Once the above mentioned functions have been added to ~/.bash_profile all newly opened terminal windows will be able to directly call them.
Run the setjdk function by typing:
1
setjdk
You should see a list of installed java versions and be prompted to select one. The following image shows the selection of Java SE 8 on a system with three different java versions installed:
1 2 3 4 5 6 7 8
Select the java version you wish to switch to from the following:
[0] 1.8.0_192, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
[1] 1.8.0_191, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
[2] 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
Please chose a value from the options above: 1
JAVA_HOME is set to be /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
Need help? Request support at Developer Technical Support Portal
Rate this page: