即使我已正确设置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,但没有成功:-(
答案 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放在前面。