无法获取Java命令以使用正确版本的Java

时间:2020-11-04 17:43:36

标签: java

即使我已正确设置JAVA_HOME,也看不到设置要使用的正确Java版本:

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home/
$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (5):
    11.0.8, x86_64: "Java SE 11.0.8"    /Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home
    11.0.2, x86_64: "Java SE 11.0.2"    /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
    11.0.2, x86_64: "OpenJDK 11.0.2"    /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
    1.8.0_202, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
    1.8.0_181, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home

如何获取java命令以使用正确的JDK?

我在MacOS Mojave 10.15.6上

我尝试了this solution,但没有成功:-(

1 个答案:

答案 0 :(得分:1)

通常,在OSX上,除非有其他JAVA_HOME优先,否则Java命令应跟随java

您可以使用which java来显示根据java实际呼叫$PATH的位置。

➜ which java
/usr/bin/java

➜ ls -la /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 Jun 10 14:33 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

您可以在我的机器/usr/bin/java中看到实际上与/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java的符号链接,这是一种根据java调用权限$JAVA_HOME的代理

因此,我的建议是整理您的$PATH,先致电给/usr/bin。或者只是set export PATH=/usr/bin:$PATH将/ usr / bin放在前面。