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

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

下面是给Mac的信息:

"苹果电脑提供自己的Java版本。使用软件 更新功能(在苹果菜单上可用),以检查您是否拥有 为你的Mac提供最新版本的Java。" < / p >

好吧,但……当我用Mac更新Java时,我有一个JRE而不是JDK…

我不明白为什么Mac上没有一个JDK版本可以轻松下载/安装(就像一个可以解压缩的jar ?)

298510 次浏览

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

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

这个2009年10月16日的答案现在已经过时了;你现在可以从Oracle网站上的常规JDK下载页面中获得Mac OS X的JDK。

一般来说,除了苹果通过软件更新提供的Java版本,你不能在Mac上安装其他版本的Java。如果你需要Java 6,你必须有一台64位的Intel计算机。你应该一直安装Java 5和1.4,如果你至少有OS X 10.4,也许还有1.3。

如果你有很多体力活,并且愿意使用测试版软件,你可以在OS X下安装OpenJDK,但我不认为你想这么做。

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

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

Tools.jar不存在。通常位于这里的类被包含在Classes .jar中。依赖于tools.jar存在的脚本需要相应地重写。

真糟糕!

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

如果你不能升级到Snow Leopard, 大豆拿铁咖啡是Intel 32位Java 6的预编译版本。

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

如何获得Mac OS X上的JDK 1.5

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

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

export JAVA_HOME=`/usr/libexec/java_home`

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

参见Apple Technical Q&A 1170: https://developer.apple.com/library/content/qa/qa1170/_index.html

编辑:

如果你更喜欢用圆括号代替反勾号进行命令替换,这也是可行的:

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

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

适用于使用LION OS X 10.7.X的用户

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

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

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

除了javac,我还发现它没有安装诸如SVN之类的包。事实证明,你可以从苹果开发者页面中获得所有东西(你需要注册你的AppleID)。SVN是“命令行工具”包的一部分。

Enter image description here

这是一台新MacBook上发生的事情:

Enter image description here

Enter image description here

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

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

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

JDK内部包含JRE。

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

在Mac上,你没有一个单独的JRE,你有它,但在JDK里面,所以当你更新Java时,它会更新JDK里面的JRE; 它不会为你安装JDK。你需要从其他地方得到它。

在Mac OS X系统上使用多个版本的Java(苹果自己的Java 6和Oracle JDK 7甚至8),并为不同的应用程序使用不同的版本,会有各种各样的棘手问题。我花了一些时间写了我的经验我在Mac OS X 10.9.2上安装和配置不同版本JDK的经验

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

酿造桶安装Java

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

brew tap caskroom/versions
brew cask install java7

可以使用以下命令列出所有可用的版本。 brew cask search java < / p >

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

如。

$sdk list java
$sdk install java <VERSION>

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

  1. 您需要安装OpenJDK.[0]的GPL版本
  2. 您不想安装Homebrew

在这种情况下,从众多可用的、可自由使用的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

注意,Oracle品牌的JDK有重大许可限制,允许你基本上使用仅用于测试,即不用于生产。如果你没有与Oracle的支持协议,那么对我来说,使用他们的JDK似乎是有风险的,特别是因为与OpenJDK的区别很小

编辑:增加了更多的选择

在2022年,尝试一下sdkman,比brew更好

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

然后打开新的外壳并尝试list,看看你可以安装什么;-)

sdk list java

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

sdk install java 17.0.1-tem