如何在 Mac OS X 上安装特定的 JDK?

Posted

技术标签:

【中文标题】如何在 Mac OS X 上安装特定的 JDK?【英文标题】:How to install a specific JDK on Mac OS X? 【发布时间】:2010-12-07 07:32:59 【问题描述】:

我想安装一个特定的 JDK(例如最新的)。为此,我去了JDK下载主页:http://java.sun.com/javase/downloads/index.jsp。 我找了一个 Mac 版本,但我有点惊讶地看到只有 Linux、Windows 和 Solaris 的可下载版本...

这是 Mac 的消息:

“Apple Computer 提供他们自己的 Java 版本。使用该软件 更新功能(在 Apple 菜单上可用)以检查您是否拥有 适用于 Mac 的最新 Java 版本。”

OK 但是...当我使用 Mac 更新 Java 时,我有一个 JRE 而不是 JDK...

我不明白为什么不存在易于下载/安装的 JDK 版本(比如解压缩的 jar?)对于 Mac...

【问题讨论】:

著名问题...您应该接受答案。 ;) Fink为此提供了解决方案。 请注意,Java 7 现在由 Oracle 提供 - 大多数答案和问题指的是较早的状态 另见:Obtain Java 11 for macOS? 【参考方案1】:

在@Thilo 的回答下的评论中,@mobibob 询问如何在 Mac 上的 .bash_profile 中设置 JAVA_HOME。答:

export JAVA_HOME=`/usr/libexec/java_home` 

这会将“Java 首选项”实用程序的“常规”选项卡中列出的第一个 JDK 的位置动态分配给 JAVA_HOME。

请参阅 Apple 技术问答 1170:https://developer.apple.com/library/content/qa/qa1170/_index.html

编辑:

如果您更喜欢括号而不是反引号来替换命令,这也可以:

export JAVA_HOME=$(/usr/libexec/java_home)

【讨论】:

【参考方案2】:

正如消息中所说,Mac 上的 Java 必须去 Apple 而不是 Sun。据我所知,Apple JDK 6 默认安装在 Mac OS X 10.6 (Snow Leopard) 上。也许您需要从 Mac OS X 安装 DVD 安装开发者工具(开发工具是从 OS DVD 安装的可选工具)。

见:http://developer.apple.com/java/

注意 2009 年 10 月 16 日的这个答案现已过时;您现在可以从 Oracle 网站上的常规 JDK download page 获取 Mac OS X 的 JDK。

【讨论】:

【参考方案3】:

对于使用任何 LION OS X 10.7.X 的人

他们在此处上传了 Java SE 6 版本 1.6.0_26

http://support.apple.com/kb/dl1421

【讨论】:

Aaand,他们用 _29 替换了它,它有 MS SQL 错误。伟大的。 :(【参考方案4】:

我昨天买了一台MacBook Pro (Mac OS X v10.8 (Mountain Lion)),默认没有安装JDK...

除了javac,我还发现它没有安装SVN等包。事实证明,您可以从Apple developer page 获取所有内容(您需要使用您的 AppleID 进行注册)。 SVN 是“命令行工具”包的一部分。

这是在新 MacBook 上发生的情况:

希望这会帮助像我这样的其他新手;)

【讨论】:

+1。山狮的情况发生了一些变化。另请注意,虽然 Apple 提供可选的 Java 安装,但它仅适用于较旧的 Java 6。适用于 OS X 的 Java 的当前版本现在由 Oracle 自己分发。【参考方案5】:

解释是JDK有点具体,不包含库tools.jar。对于我的开发,我需要这个库,而 Mac 的 JDK 没有提供它:

(参见http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html)

tools.jar 不存在。通常位于此处的类被包含在 classes.jar 中。依赖于 tools.jar 存在的脚本需要进行相应的重写。

太烂了!

【讨论】:

啊啊啊啊!!!正如您所发现的,tools.jar 已经包含在 Mac OS X 的运行时中。因此,在 Mac 上寻找 tools.jar 并不是判断它是 JDK 还是 JRE 的正确方法:) 感谢您的回复,您是对的。我需要为特定项目获取 tools.jar 库,对我来说这是一种识别 jdk 的方法;)【参考方案6】:

最简单的方法是使用Homebrew。 安装 Homebrew,然后:

brew tap caskroom/versions
brew cask install java7

您可以使用以下命令列出所有可用版本: brew cask search java

【讨论】:

【参考方案7】:

Mac自带JDK,更多信息查看:

http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html

【讨论】:

【参考方案8】:

使用 -source 1.5 -target 1.5 编译(在 JDK 6 环境中)将仅支持 1.5 及之前版本中的语言元素。伟大的。但是无论如何,6中没有语言变化。这种方法的问题(在 1.6 的 Mac 上)是使用 1.5 之后的类仍然可以编译,因为它们存在于 rt.jar 中。因此,可以在 1.5 环境中运行,并在编译时得到一个未找到类的异常,而没有事先警告。我通过 javax.swing.event.RowSorterEvent/Listener 发现了这一点。两者都输入了“Since 1.6”,但没有被 -source 1.5 捕获

【讨论】:

【参考方案9】:

如果你安装了 brew,下面的 cmd 会很有帮助:

brew cask install java

【讨论】:

酿造?你的意思是Homebrew?【参考方案10】:

从Mac OS X v10.6 (Snow Leopard) 开始,您可以在配备 32 位或 64 位 Intel 处理器的 Mac 上以 32 位模式运行 Java 6。

如果您无法升级到 Snow Leopard,Soy Latte 是用于 Intel 32 位的 Java 6 的预编译版本。

【讨论】:

【参考方案11】:

在一个 Mac OS X 系统上拥有多个 Java 版本(Apple 自己的 Java 6 和 Oracle JDK 7 甚至 8)以及为不同的应用程序使用不同的版本存在各种棘手的问题。我花了一些时间写下我对my experience of installing and configuring various versions of JDK on Mac OS X 10.9.2的体验。

【讨论】:

【参考方案12】:

检查这个很棒的工具sdkman 来轻松管理您的 jdk 和其他 jdk 相关工具!

例如

$sdk list java
$sdk install java <VERSION>

【讨论】:

【参考方案13】:

由于大多数答案都已过时,因此假设以下是截至 2018 年底的有效答案

    您要安装 GPL 版本的 OpenJDK。[0] 您不想安装 Homebrew

在这种情况下,从众多可用、可免费使用的 OpenJDK 版本中获取所需版本,例如:

AdoptOpenJDK Amazon Corretto(非常适合生产,包括 backports) Oracle GPLv2 OpenJDK

其中一些包括安装程序,但如果没有,您可以执行以下操作。假设 Mac 版本为 11.0.1。在你最喜欢的 shell 中,运行:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] 请注意,Oracle 品牌的 JDK 有 significant licensing restrictions 允许您基本上仅用于测试,即,不能用于生产。如果您没有与 Oracle 签订支持协议,那么使用他们的 JDK 对我来说似乎有风险,特别是因为 differences to OpenJDK are minimal.

编辑:添加了更多选择

【讨论】:

我建议您指出从AdoptOpenJDK.net 下载,然后按照您的说明进行操作,从而避免Oracle 版本的法律和支持问题。【参考方案14】:

2022年试试sdkman,比brew

curl -s "https://get.sdkman.io" | bash

然后打开一个新的shell并尝试list看看你可以安装什么;-)

sdk list java 

在撰写本文时,您可以使用:

sdk install java 17.0.1-tem

【讨论】:

如果您想安装最新的稳定版本,也可以直接 brew install openjdk @Datageek 对。感谢您的建议【参考方案15】:

我认为另一个 Stack Overflow 问题可能会有所帮助:

How to get JDK 1.5 on Mac OS X

它基本上说,如果您需要使用旧版本的 JDK(例如 1.4 或 1.5)编译或执行 Java 应用程序,您可以使用 1.6 来完成,因为它向后兼容。为此,您需要在 javac 选项或 IDE 中添加参数 -source 1.5 和/或 -target 1.5

【讨论】:

【参考方案16】:

JDK 是 Java 开发工具包(用于开发 Java 软件)。

JRE 是 Java 运行时环境(用于运行任何 .jar 文件“Java 软件”)。

JDK 中包含一个 JRE。

在 Windows 上,当您更新 Java 时,它会自动更新 JRE。

在 Mac 上,您没有单独的 JRE,而是在 JDK 中,因此当您更新 Java 时,它会更新您的 JDK 中的 JRE; 它不会为您安装 JDK。您需要从其他地方获取它。

【讨论】:

我认为您的意思是 JDK 而不是 IDK。我试过编辑,但 Stack Overflow 说编辑需要超过 6 个字符。只是提及它以避免混淆。【参考方案17】:

通常,除了 Apple 通过软件更新提供的版本之外,您不能在 Mac 上安装其他版本的 Java。如果您需要 Java 6,您必须拥有一台 64 位 Intel 计算机。如果您至少有 OS X 10.4,则应该始终安装 Java 5 和 1.4,也许还安装 1.3。

如果你有很多麻烦并且愿意使用测试版软件,你可以在 OS X 下安装 OpenJDK,但我认为你不想去那里。

【讨论】:

我知道,这就是我添加该评论的原因。也许应该写一个更长的评论来配合链接:-)

以上是关于如何在 Mac OS X 上安装特定的 JDK?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK

如何在 OS X 上安装 Rancher

Mac OS X 和多个 Java 版本

原创Mac OS X 下同时安装多个版本的JDK(JDK 1.5 ~ JDK 1.8)

在 OS X 10.9 (Mavericks) 上安装 Java

如何在Mac OS X上安装 Ruby运行环境