ChatGPT解决这个技术问题 Extra ChatGPT

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

我想安装一个特定的 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?)...

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

C
Cœur

在@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)

J
Jesper

正如消息所说,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。


R
Roy Calderon

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

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

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


Aaand,他们用 _29 替换了它,它有 MS SQL 错误。伟大的。 :(
P
Peter Mortensen

我昨天买了一台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

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


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

解释是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 的方法;)
s
solomkinmv

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

brew tap caskroom/versions
brew cask install java7

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


E
Evan

使用 -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 捕获


P
Ponderous

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

酿造桶安装java


酿造?你是说Homebrew吗?
P
Peter Mortensen

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

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


M
Meng Lu

在一个 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 的体验。


R
Rishikesh Darandale

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

例如

$sdk list java
$sdk install java <VERSION>

L
LCC

由于大多数答案都已过时,因此假设以下是截至 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 开始。

编辑:添加了更多选择


我建议您指出从 AdoptOpenJDK.net 下载,然后按照您的说明进行操作,从而避免法律和Oracle 版本的支持问题。
f
freedev

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 对。谢谢你的建议
C
Community

我认为另一个 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


P
Peter Mortensen

JDK是Java Development Kit(用于开发Java软件)。

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

JDK 中包含一个 JRE。

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

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


我认为您的意思是 JDK 而不是 IDK。我试过编辑,但 Stack Overflow 说编辑需要超过 6 个字符。只是为了避免混淆而提及它。
T
Thorbjørn Ravn Andersen

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

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


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