Mac OS X 和多个 Java 版本

新手上路,请多包涵

如何在 MacOS 上安装额外的 java?我安装了jdk8,效果很好。但现在我需要一个 jdk7 安装用于开发目的。尝试通过 DMG 文件安装旧版本时,我收到一条警告,提示已经安装了较新版本的 java 并且安装程序退出。

     /usr/libexec/java_home -verbose
    Matching Java Virtual Machines (1):
        1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

       /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

jdk7 除了这个怎么安装?

原文由 Dakkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在 Mac 上管理多个 java 版本的最简洁方法是使用 Homebrew

Homebrew 内,使用:

  • homebrew-cask 安装java的版本
  • jenv 管理已安装的java版本

http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html 所示,这些是要遵循的步骤。

  1. 安装自制软件
  2. 安装自制 jenv
  3. 安装自制酒桶
  4. 使用 cask 安装特定的 java 版本(请参阅下面的“homebrew-cask 版本”段落)
  5. 为 jenv 添加这个版本来管理它
  6. 检查版本是否由 jenv 正确管理
  7. 为您需要的每个 java 版本重复步骤 4 到 6

自制桶版本

添加 homebrew/cask-versions 点击到 homebrew 使用:

 brew tap homebrew/cask-versions

然后你可以查看所有可用的版本:

 brew search java

然后你可以安装你喜欢的版本:

 brew cask install java7
brew cask install java6

并像往常一样将它们添加到 jenv 管理。

 jenv add <javaVersionPathHere>

我认为这是最干净和最简单的方法。


另一个需要注意的重要事项,如 Mac OS X 10.6.7 Java Path Current JDK 混淆 中所述:

对于不同类型的 JDK 或安装,您将有不同的路径

您可以使用 /usr/libexec/java_home -V 检查安装版本的路径,请参阅 如何检查 Java JDK 是否安装在 Mac 上?

在 Mac OS X Mavericks 上,我发现如下:

1)内置JRE默认: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2)从苹果下载的JDK: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

3)从Oracle下载的JDK: /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home


资源

原文由 Adrien Be 发布,翻译遵循 CC BY-SA 4.0 许可协议

卸载jdk8,安装jdk7,然后重新安装jdk8。

我在它们之间切换的方法(在 .profile 中):

 export JAVA_7_HOME=$(/usr/libexec/java_home -v1.7)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)

alias java7='export JAVA_HOME=$JAVA_7_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'

#default java8
export JAVA_HOME=$JAVA_8_HOME

然后,您只需在终端中键入 java7java8 即可切换版本。

(编辑:更新以添加 Dylans 对 Java 9 的改进)

原文由 Vegard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题