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

时间:2009-10-16 09:12:39

标签: java macos install

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

17 个答案:

答案 0 :(得分:44)

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

export JAVA_HOME=`/usr/libexec/java_home` 

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

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

编辑:

如果您更喜欢使用括号来反对命令替换,那么这也有效:

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

答案 1 :(得分:20)

正如消息所说,你必须在Apple上使用Apple,而不是Sun,以获取Java。据我所知,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。

答案 2 :(得分:10)

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

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

Enter image description here

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

Enter image description here

Enter image description here

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

答案 3 :(得分:10)

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

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

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

答案 4 :(得分:4)

答案 5 :(得分:4)

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

brew tap caskroom/versions
brew cask install java7

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

答案 6 :(得分:4)

解释是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存在的脚本需要相应地重写。

太糟糕了!

答案 7 :(得分:3)

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

捕获

答案 8 :(得分:3)

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

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

答案 9 :(得分:3)

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

答案 10 :(得分:3)

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

  

brew cask install java

答案 11 :(得分:1)

我认为其他Stack Overflow问题可能有所帮助:

How to get JDK 1.5 on Mac OS X

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

答案 12 :(得分:1)

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

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

JDK里面包含一个JRE。

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

在Mac上,你没有JRE分开,但是在JDK中,所以当你更新Java时,它会更新你JDK里面的JRE; 它没有为您安装JDK。你需要从其他地方获得它。

答案 13 :(得分:1)

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

e.g。

$sdk list java
$sdk install java <VERSION>

答案 14 :(得分:1)

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

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

在这种情况下,请从Oracle GPLv2 OpenJDK siteAdoptOpenJDK中获取所需的版本(本人尚未测试)。在下面,我假设Mac的版本为11.0.1。然后在您最喜欢的外壳中进行操作:

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开始。

答案 15 :(得分:0)

通常,您无法在Mac上安装其他版本的Java,而不是Apple通过软件更新提供的版本。如果您需要Java 6,则必须具有64位Intel计算机。如果您至少拥有OS X 10.4,则应始终安装Java 5和1.4以及1.3。

如果您有非常多的肘部油脂,并且愿意使用测试版软件,您可以在OS X下安装OpenJDK,但我认为您不想去那里。

答案 16 :(得分:0)

在 2021 年,您只需使用 brew

brew install openjdk@11

您将在这里找到您的 JDK:

/usr/local/opt/openjdk@11