Java 8 went missing

Viewed 90

This is my java versions:

Matching Java Virtual Machines (4):
    16.0.1 (x86_64) "Oracle Corporation" - "Java SE 16.0.1" /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home
    11.0.12 (x86_64) "Oracle Corporation" - "Java SE 11.0.12" /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    1.8.291.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_291 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

I used to be able to switch between versions like this:

export JAVA8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_HOME=$JAVA8_HOME
alias usejava8="export JAVA_HOME=$JAVA8_HOME"
alias usejava11="export JAVA_HOME=$JAVA11_HOME"

But now, I don't know what happened, whenever I try to use java8, it still points to Java 16. I even run export path manually but it doesn't work.

/usr/libexec/java_home -v 16
/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home
/usr/libexec/java_home -v 8
/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home
/usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home

So my Java 16 and 11 are pointed to the correct home, but my machine points 8 to 16. How do I fix this?

1 Answers

You have to use /usr/libexec/java_home -v 1.8 ("1.8" instead of "8") to specify the 1.8 (8) JAVA_HOME.

Related