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?


答案 1

在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 版本(请参阅下面的“自制桶版本”段落)
  5. 添加此版本供 jenv 管理它
  6. 检查版本是否由 jenv 正确管理
  7. 对所需的每个 Java 版本重复步骤 4 到 6

自制桶装版本

使用以下命令将自制/桶版本水龙头添加到自制啤酒:

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 或安装,您将有不同的路径

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

在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


资源


答案 2

卸载 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

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