我想在Mac OSX上安装OpenJDK Java,并让它与其他JDK一起工作,因为它是一个更新的版本。目前,我下载了tar.gz并将其放在我的路径中,但这很难维护。
我发现唯一一个能自动做更多事情的安装是通过Homebrew桶进行安装。它看起来也只有当前版本:
brew cask info java
显示:
java: 13,33:5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/
所以我可以从那里安装,然后呢?我是否只能使用新版本?
如果您的机器上安装了多个版本,请在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
与Homebrew和jenv合作:
假设:Mac机器,你已经安装了自制软件。
从Oracle官方网站安装Java。可以安装多个版本的JDK。它将安装在以下路径:
/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/
/Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/
/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/
如果没有jenv,系统将使用最后安装的java。
如果你想使用/管理多个版本,那么你可以使用jenv:
安装和配置jenv:
$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
将已安装的java添加到jenv:
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/14.0.2.jdk/Contents/Home
查看所有已安装的java:
$ jenv versions
上面的命令将给出已安装java的列表:
system
1.8
* 1.8.0.291 (set by /Users/lpatel/.jenv/version)
14
14.0
14.0.2
oracle64-1.8.0.291
oracle64-14.0.2
配置你想要使用的java版本:
$ jenv global 1.8.0.291
如果您的机器上安装了多个版本,请在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
恕我直言,没有必要安装所有额外的应用程序/包。
使用命令检查可用的版本:
> /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