java - Mac OS X 和多个 Java 版本

标签 java macos multiple-versions homebrew-cask jenv

如何在 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除了这个还怎么安装?

最佳答案

在 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使用以下方法点击自制软件:

brew tap homebrew/cask-versions

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

brew search java

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

brew install --cask java7
brew install --cask java6

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

jenv add <javaVersionPathHere>

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


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

For different types of JDKs or installations, you will have different paths

You can check the paths of the versions installed using /usr/libexec/java_home -V, see How do I check if the Java JDK is installed on Mac?

On Mac OS X Mavericks, I found as following:

  1. Built-in JRE default: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

  2. JDKs downloaded from Apple: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

  3. JDKs downloaded from Oracle: /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home


资源

关于java - Mac OS X 和多个 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252591/

相关文章:

php - 在 OSX 10.9.2 上安装 Composer 时出现段错误 11

wordpress - 基于IP的不同版本的网站(Wordpress)

java - 我如何从pfx证书中读取java中的私钥

java - 我的生产者消费者代码陷入死锁

ruby-on-rails - RVM 和 OSX Lion - 系统重启时 RVM 'forgets' gemsets

python - 如何在 Mac OS X 上强制使用 64 位 python?

.net - 在网络服务器上管理多个.Net框架

php - 同一个盒子上的多个 PHP 版本

java - 如何在登录 Activity 模板android studio中设置有效的用户名和密码

java - 将 Canvas 上绘制的圆圈旋转到触摸标记的点