关于java:如何在Mac OS X上安装特定的JDK?

How to install a specific JDK on Mac OS X?

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

以下是Mac的信息:

"Apple Computer supplies their own version of Java. Use the Software
Update feature (available on the Apple menu) to check that you have
the most up-to-date version of Java for your Mac."

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

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


在@thilo回答下的一条评论中,@mobibob询问如何在Mac上的.bash_配置文件中设置java_home。答:

1
export JAVA_HOME=`/usr/libexec/java_home`

这将动态地分配给JavaHHOLD在"Java首选项"实用工具的"一般"选项卡中列出的第一个JDK的位置。

请参阅Apple Technical Q&A 1170:https://developer.apple.com/library/content/q a/q a 1170/u index.html

编辑:

如果您更喜欢使用括号而不是反勾号来替换命令,这也适用于:

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

正如消息所说,你必须去苹果,而不是太阳,在Mac上的Java。据我所知,苹果JDK 6默认安装在Mac OS X 10.6(雪豹)上。也许您需要从Mac OS X安装DVD安装开发人员工具(开发人员工具是从OS DVD安装的可选工具)。

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

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


对于使用Lion OS X 10.7.x的用户

他们上传了JavaSE 6版本1.6026

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


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

除了javac,我还发现它没有安装SVN之类的包。事实证明,您可以从Apple开发人员页面获得所有信息(您需要注册AppleID)。SVN是"命令行工具"包的一部分。

Enter image description here

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

Enter image description here

Enter image description here

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


最简单的方法是使用自制啤酒。安装自制,然后:

1
2
brew tap caskroom/versions
brew cask install java7

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


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

(参见http://developer.apple.com/mac/library/documentation/java/conceptive/java14development/02-javadevtools/javadevtools.html)

tools.jar does not exist. Classes usually located here are instead included in classes.jar. Scripts that rely on the existence of tools.jar need to be rewritten accordingly.

糟透了!


Mac附带了JDK,有关更多信息,请查看:

http://developer.apple.com/mac/library/documentation/java/conceptive/java14开发/02-javadevtools/javadevtools.html


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


如果安装了BREW,下面的命令将有帮助:

brew cask install java


对于Mac & Nbsp;X&Nbsp;V0.6(雪豹),您可以在32位或64位英特尔处理器配备的Mac上运行Java 6的32位模式。

如果你不能升级到雪豹,大豆拿铁是英特尔32位的Java 6的预编译版本。


使用-source 1.5-target1.5(在jdk 6环境中)进行编译将只使用1.5和更高版本中的语言元素。伟大的。但无论如何,6个国家没有语言变化。这种方法(在1.6版的Mac上)的问题是,使用1.5版之后的类仍然会编译,因为它们存在于rt.jar中。因此,可以在1.5环境中运行,并在编译时得到一个未找到类的异常,没有预先警告。我用javax.swing.event.rowsortervent/listener找到了这一点。两者都输入了"自1.6起",但未被源1.5捕获。


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

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

JDK中包含一个JRE。

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

在Mac上,你没有一个JRE分离,你拥有它,但是在JDK内部,所以当你更新Java时,它将更新你的JDE中的JRE;它不会为您安装JDK。你需要从别的地方得到它。


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

  • 您想安装OpenJDK的GPL版本[0]
  • 您不想安装自制
  • 在这种情况下,从Oracle gplv2 openjdk站点或AdopOpenjdk(还没有自己测试)中获取所需的版本。在下面,我假设Mac的版本是11.0.1。然后用你最喜欢的外壳:

    1
    2
    3
    4
    5
    6
    7
    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有许多许可限制,允许您基本上只用于测试,即不用于生产。如果您没有与Oracle签订支持协议,那么使用它们的JDK对我来说似乎是有风险的,特别是与OpenJDK的差异是最小的。


    检查这个很棒的工具sdkman,可以非常轻松地管理您的JDK和其他与JDK相关的工具!

    例如

    1
    2
    $sdk list java
    $sdk install java <VERSION>

    我认为另一个堆栈溢出问题可以帮助:

    如何在Mac OS X上获得JDK 1.5

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


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

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