За кулисами jenv использует каталог / Library / Java / JavaVirtualMachines.
Затем вы также можете набрать /usr/libexec/java_home -V
, чтобы показать все доступные JDK и проанализировать вашу проблему:
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
В этом примере export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
устанавливает версию JDK 1.8.
Таким образом, вы даже можете определить следующие псевдонимы:
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: Версия для использования после java_home -v
определяется в каждой установке JDK в Contents / Info.plist файловом разделе JVMVersion .
Я изменил его, чтобы легко переключаться между OpenJDK и Oracle JDK:
$ tail -5 /Library/Java/JavaVirtualMachines/OpenJDK-jdk-11.0.2.jdk/Contents/Info.plist | head -2
<key>JVMVersion</key>
<string>11.0.2_1-OpenJDK</string>
$ tail -5 /Library/Java/JavaVirtualMachines/OracleJDK-jdk-11.0.2.jdk/Contents/Info.plist | head -2
<key>JVMVersion</key>
<string>11.0.2_2-OracleJDK</string>
Итак, в вашем случае у вас есть две версии 1.8 (1.8 и 1.8.0.252). Более чем вероятно, что вам следует обновить их Contents / Info.plist раздел файла JVMVersion .