如何在Mac上更改Java的默认版本?
除了上述答案外,我在我的代码行.bash_profile(或.zshrcMacOS 10.15+)中添加了以下几行,这使得切换(包括@elektromin对Java 9的注释)非常方便:
.bash_profile
alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version" alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version" alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version" alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version" alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version" alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"
插入后执行 $ source .bash_profile
$ source .bash_profile
我可以通过键入以下命令切换到Java 8:
$ j8 java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
第一次运行/usr/libexec/java_home -V将输出类似以下内容:
Matching Java Virtual Machines (3): 1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
选择你想要成为默认版本的版本(1.6.0_65-b14-462出于参数考虑),然后:
1.6.0_65-b14-462
export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`
或者你可以仅指定主要版本,例如:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
现在,当你运行时,java -version你将看到:
java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
将export JAVA_HOME…行添加到你的外壳的init文件中。
export JAVA_HOME…
对于Bash(如antonyh所述):
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)