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是"命令行工具"包的一部分。
这就是在新的MacBook上发生的事情:
希望这能帮助像我这样的新手;)
最简单的方法是使用自制啤酒。安装自制,然后:
1 2 | brew tap caskroom/versions brew cask install java7 |
可以使用以下命令列出所有可用版本:
解释是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年底在假设
在这种情况下,从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中添加参数
一般来说,你不能在苹果上安装其他版本的Java,而不是苹果通过软件更新提供的Java版本。如果你需要Java 6,你必须有一个64位的英特尔计算机。如果你至少有OS X 10.4,你应该总是有Java 5和1.4,也许安装了1.3。
如果你有很多经验并且愿意使用beta软件,你可以在OSX下安装OpenJDK,但是我不认为你想去那里。