我想在Mac OSX上安装OpenJDK Java,并让它与其他JDK一起工作,因为它是一个更新的版本。目前,我下载了tar.gz并将其放在我的路径中,但这很难维护。
我发现唯一一个能自动做更多事情的安装是通过Homebrew桶进行安装。它看起来也只有当前版本:
brew cask info java
显示:
java: 13,33:5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/
所以我可以从那里安装,然后呢?我是否只能使用新版本?
恕我直言,没有必要安装所有额外的应用程序/包。
使用命令检查可用的版本:
> /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
11, x86_64: "Java SE 11-ea" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
9.0.1, x86_64: "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_181-zulu-8.31.0.1, x86_64: "Zulu 8" /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
1.8.0_151, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
现在,如果你想在上面的列表中选择Azul JDK 8,而不是Oracle的Java SE 8,调用如下命令:
> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
要选择Oracle的Java SE 8,您将调用以下命令:
> /usr/libexec/java_home -v 1.8.0_151
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
正如你所看到的,提供的版本号应该是唯一的字符串集:1.8.0_181 vs 1.8.0_151
我是这么做的。
步骤1:安装Java 11
你可以从这里下载Java 11 dmg for mac: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
步骤2:安装Java 11后。确认所有版本的安装。在终端中输入以下命令。
/usr/libexec/java_home -V
步骤3:编辑.bash_profile
sudo nano ~/.bash_profile
步骤4:添加11.0.1作为默认值。(将以下行添加到bash_profile文件中)。
export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.1)
切换到任何版本
export JAVA_HOME=$(/usr/libexec/java_home -v X.X.X)
现在按CTRL+X退出bash。按“Y”保存更改。
步骤5:重新加载bash_profile
source ~/.bash_profile
步骤6:确认当前的Java版本
java -version
如果您的机器上安装了多个版本,请在bash配置文件中添加以下内容:
export JAVA_HOME_7=$(/usr/libexec/java_home -v1.7)
export JAVA_HOME_8=$(/usr/libexec/java_home -v1.8)
export JAVA_HOME_9=$(/usr/libexec/java_home -v9)
并添加以下别名:
别名java7=“出口JAVA_HOME=$ java_home_7”
别名java8=“出口JAVA_HOME=$ java_home_8”
别名java9=“出口JAVA_HOME=$ java_home_9”
并且可以使用别名切换到所需的版本:
在终端:
~ >> java7
出口JAVA_HOME = $ JAVA_7_HOME