我想安装一个特定的 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...
我不明白为什么不存在适用于 Mac 的易于下载/安装的 JDK 版本(比如解压缩的 jar?)...
在@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)
正如消息所说,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。
对于使用任何 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 等软件包。事实证明,您可以从 Apple developer page 获取所有内容(您需要使用您的 AppleID 进行注册)。 SVN 是“命令行工具”包的一部分。
https://i.stack.imgur.com/9LhiY.png
这是新 MacBook 上发生的情况:
https://i.stack.imgur.com/gO7De.png
https://i.stack.imgur.com/hm33e.png
希望这会帮助像我这样的其他新手;)
解释是JDK有点具体,不包含库tools.jar。对于我的开发,我需要这个库,而 Mac 的 JDK 不提供它:
tools.jar 不存在。通常位于此处的类被包含在 classes.jar 中。依赖于 tools.jar 存在的脚本需要相应地重写。
糟透了!
tools.jar
已经包含在 Mac OS X 的运行时中。因此,在 Mac 上寻找 tools.jar
并不是判断它是 JDK 还是 JRE 的正确方法:)
最简单的方法是使用 Homebrew。安装 Homebrew,然后:
brew tap caskroom/versions
brew cask install java7
您可以使用以下命令列出所有可用版本:brew cask search java
使用 -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 发现了这一点。两者都输入了“自 1.6 以来”,但没有被 -source 1.5 捕获
从 Mac OS X v10.6 (Snow Leopard) 开始,您可以在配备 32 位或 64 位 Intel 处理器的 Mac 上以 32 位模式运行 Java 6。
如果您无法升级到 Snow Leopard,Soy Latte 是用于 Intel 32 位的 Java 6 的预编译版本。
在一个 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 的体验。
由于大多数答案都已过时,因此假设以下是截至 2018 年底的有效答案
您想安装 GPL 版本的 OpenJDK。[0]您不想安装 Homebrew
在这种情况下,从众多可用、可免费使用的 OpenJDK 版本中获取所需版本,例如:
采用OpenJDK
Amazon Corretto(非常适合生产,包括向后移植)
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 开始。
编辑:添加了更多选择
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
。
我认为另一个 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
。
JDK是Java Development Kit(用于开发Java软件)。
JRE 是 Java 运行时环境(用于运行任何 .jar 文件“Java 软件”)。
JDK 中包含一个 JRE。
在 Windows 上,当您更新 Java 时,它会自动更新 JRE。
在 Mac 上,您没有单独的 JRE,而是在 JDK 内部,因此当您更新 Java 时,它将更新您的 JDK 内部的 JRE;它不会为您安装 JDK。您需要从其他地方获取它。
通常,除了 Apple 通过软件更新提供的版本之外,您不能在 Mac 上安装其他版本的 Java。如果您需要 Java 6,您必须拥有一台 64 位 Intel 计算机。如果您至少有 OS X 10.4,则应该始终安装 Java 5 和 1.4,也许还安装 1.3。
如果你有很多麻烦并且愿意使用 beta 软件,你可以在 OS X 下安装 OpenJDK,但我认为你不想去那里。