Not able to change the JDK in Mac OS using Jenv

前端 未结 3 1574
轻奢々
轻奢々 2021-01-28 05:46

I am using Amazon corretto JDK and earlier had only 1.8 installed in my Mac OS, yesterday I installed Amazon corretto JDK 11 using the Mac OS package installer and after that it

3条回答
  •  不思量自难忘°
    2021-01-28 06:21

    Behind the scenes jenv uses the /Library/Java/JavaVirtualMachines directory.

    Then you could also type /usr/libexec/java_home -V to show all the available JDKs and analyse your issue:

    Matching Java Virtual Machines (4): 
    11.0.2_2-OracleJDK, x86_64: "Java SE 11.0.2" /Library/Java/JavaVirtualMachines/OracleJDK-jdk-11.0.2.jdk/Contents/Home 
    11.0.2_1-OpenJDK, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/OpenJDK-jdk-11.0.2.jdk/Contents/Home 
    1.8.0_11, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 
    1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home 
    
    /Library/Java/JavaVirtualMachines/OracleJDK-jdk-11.0.2.jdk/Contents/Home
    

    In this exemple export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) set the JDK 1.8 version.

    Thus, you even could define the following aliases:

    java11_OpenJDK_export='export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.2_1-OpenJDK)'
    java11_OracleJDK_export='export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.2_2-OracleJDK)'
    java7_export='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)'
    java8_export='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'
    

    NB: The version to use after java_home -v is defined in each JDK installation in the Contents/Info.plist file section JVMVersion.

    I changed it, to easily switch between the OpenJDK and the Oracle JDK:

    $ tail -5 /Library/Java/JavaVirtualMachines/OpenJDK-jdk-11.0.2.jdk/Contents/Info.plist | head -2
    JVMVersion
    11.0.2_1-OpenJDK
    
    $ tail -5 /Library/Java/JavaVirtualMachines/OracleJDK-jdk-11.0.2.jdk/Contents/Info.plist | head -2
    JVMVersion
    11.0.2_2-OracleJDK
    

    So, in your case as you have two 1.8 versions (1.8 and 1.8.0.252). It is more than likely that you should update their Contents/Info.plist file section JVMVersion.

提交回复
热议问题