首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Mac OSX上安装允许版本切换的Java?

如何在Mac OSX上安装允许版本切换的Java?
EN

Stack Overflow用户
提问于 2018-09-27 02:32:31
回答 9查看 330.5K关注 0票数 431

我想在Mac上安装Java,并让它与其他OpenJDK一起工作,因为它是一个较新的版本。目前,我下载了tar.gz并将其放在path中,但这很难维护。

我发现的唯一一个自动完成更多事情的安装是通过Homebrew cask安装。它看起来也只有当前版本:

代码语言:javascript
复制
brew cask info java

显示:

java: 13,33:5b8a42f3905b406298b72d750b6919f6

https://openjdk.java.net/

所以我可以从那里安装它,但是然后呢?我是否只坚持使用新版本?

EN

回答 9

Stack Overflow用户

发布于 2018-11-13 11:11:11

我就是这么做的。

步骤1:

安装Java 11

您可以从以下位置下载适用于mac的Java 11 dmg:

https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

步骤2:

安装Java 11之后,确认所有版本的安装。在终端中键入以下命令。

代码语言:javascript
复制
/usr/libexec/java_home -V

步骤3:

编辑.bash

_

配置文件

代码语言:javascript
复制
sudo nano ~/.bash_profile

第四步:

添加11.0.1作为默认值。(将下面一行添加到bash

_

配置文件)。

代码语言:javascript
复制
export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.1)

切换到任何版本

代码语言:javascript
复制
export JAVA_HOME=$(/usr/libexec/java_home -v X.X.X)

现在按CTRL+X退出bash。按'Y‘保存更改。

步骤5:

重新加载bash

_

配置文件

代码语言:javascript
复制
source ~/.bash_profile

步骤6:

确认Java的当前版本

代码语言:javascript
复制
java -version
票数 25
EN

Stack Overflow用户

发布于 2019-10-20 23:34:47

使用Homebrew和jenv:

假设: Mac机器上已经安装了自制软件。

安装cask:

代码语言:javascript
复制
$ brew tap caskroom/cask
$ brew tap caskroom/versions

要安装最新的java,请执行以下操作:

代码语言:javascript
复制
$ brew cask install java

要安装java 8,请执行以下操作:

代码语言:javascript
复制
$ brew cask install java8

要安装java 9,请执行以下操作:

代码语言:javascript
复制
$ brew cask install java9

如果你想安装/管理多个版本,你可以使用'jenv':

安装和配置jenv:

代码语言:javascript
复制
$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

将安装的java添加到jenv:

代码语言:javascript
复制
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

要查看所有已安装的java,请执行以下操作:

代码语言:javascript
复制
$ jenv versions

上面的命令将给出已安装的java的列表:

代码语言:javascript
复制
* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

配置您要使用的java版本:

代码语言:javascript
复制
$ jenv global oracle64-1.6.0.39
票数 13
EN

Stack Overflow用户

发布于 2018-10-28 19:49:56

手动切换系统-没有第三方工具的默认版本:

详细信息请参见

这个老答案

,在macOS上

是一个包装器工具,它将使用

或者,如果没有设置该变量,将在

并将使用版本最高的版本。它通过查看以下内容来确定版本

在每个包下面。

有了这些知识,你就可以:

通过重命名来控制系统将使用的版本

在您不希望用作缺省文件的版本中(该文件不会被实际的Java运行时本身使用)。

控制用于特定任务的版本,方法是设置

我刚刚用OpenJDK & Mojave验证了这一点。

在一个全新的系统上,没有安装Java版本:

代码语言:javascript
复制
$ java -version
No Java runtime present, requesting install.

取消此操作,请在以下位置下载OpenJDK 11和12ea

https://jdk.java.net

;安装OpenJDK11:

代码语言:javascript
复制
$ cd /Library/Java/JavaVirtualMachines/
$ sudo tar xzf ~/Downloads/openjdk-11.0.1_osx-x64_bin.tar.gz

系统java现在是11:

代码语言:javascript
复制
$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

安装OpenJDK12 (目前可提前访问):

代码语言:javascript
复制
$ sudo tar xzf ~/Downloads/openjdk-12-ea+17_osx-x64_bin.tar.gz

系统java现在是12:

代码语言:javascript
复制
$ java -version
openjdk version "12-ea" 2019-03-19
[...]

现在让我们从system java wrapper中“隐藏”OpenJDK 12:

代码语言:javascript
复制
$ cd jdk-12.jdk/Contents/
$ sudo mv Info.plist Info.plist.disabled

系统java又回到了11:

代码语言:javascript
复制
$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

并且您仍然可以通过手动设置来准时使用版本12

代码语言:javascript
复制
$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
$ java -version
openjdk version "12-ea" 2019-03-19
[...]
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52524112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档