如何在 Mac OSX 上使用 JDK 7?
Posted
技术标签:
【中文标题】如何在 Mac OSX 上使用 JDK 7?【英文标题】:How do I use JDK 7 on Mac OSX? 【发布时间】:2011-09-10 04:15:07 【问题描述】:我想使用此链接中提到的 WatchService API: http://download.oracle.com/javase/tutorial/essential/io/notification.html
阅读后,我发现 WatchService 是为 JDK 7 计划的 NIO 类的一部分。因此,它是 beta 形式。没关系。
http://jdk7.java.net/download.html 有我下载并解压的 JDK。我有一堆文件夹。我不知道该怎么处理它们。
然后,我阅读了更多内容,发现一些不错的人将 JDK 7 创建为二进制文件,因此像我这样的人可以轻松安装它。它被称为 Open JDK: http://code.google.com/p/openjdk-osx-build/
所以,我下载了 .dmg 文件并安装了它。然后我打开“Java Preference”,看到OpenJDK7可用。
所以,现在我觉得我可以开始尝试 WatchService API。从第一个链接中的教程中,作者给出了一个 .java 文件,首先对其进行测试并确保它正在运行。这是文件的链接: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java
所以,我启动Eclipse(实际上我使用STS)并创建一个新的Java项目并在“使用执行环境JRE:”中选择JaveSE-1.7。在 src 文件夹下,我复制粘贴了 WatchDir.java 文件。
而且我仍然看到大量弯曲的红线。所有的“import.java.nio.*”都是红色的,我无法将其作为 Java 应用程序运行。
我需要做什么?
【问题讨论】:
可以在控制台上运行编译吗? 你的意思是:$javac WatchDir.java 然后是 $Java WatchDir?我会试试的。谢谢!虽然我希望它可以在 Eclipse IDE 中使用。 从今天开始有正式的Oracle版本-Java SE 7u4 确保您使用的是 64 位 Eclipse。没有运气在 1.7 jvm 上运行 32 位的任何选项。 更新:Java 7 是 now at end-of-life。要继续使用 Java 的长期支持 (LTS) 版本,请参阅:How to install Java 8 on Mac 和 Obtain Java 11 for macOS?。 【参考方案1】:这就是我如何让 1.7 与 Eclipse 一起工作。希望对你有帮助。
-
我下载了最新的 OpenJDK 1.7 通用(32/64 位)JDK
来自http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 的 Mac OS/X 分支
将 jdk 复制到 /Library/Java/JavaVirtualMachines/ 旁边的
默认1.6.0一个
在 Eclipse > Preferences > Java > Installed JREs 添加一个新的 JRE,类型为 MacOS X VM,并将 home 设置为 /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home 和
命名 Java SE 7 (OpenJDK)
点击完成
将添加的 JRE 设为默认
应该是这样的:)
【讨论】:
感谢我的 elcipse 完全挂了.. 所以我尝试使用 sdk 1.7 完美地工作! :=) 该项目 (openjdk-osx-build) 已关闭,不再提供任何下载。 第二步可以是:运行下载的jdk-7u40-macosx-x64.dmg,它会自动添加文件到路径 将已安装的 JRE 添加到 Eclipse 时,Eclipse 还可以“搜索”已安装的 JRE。这就是我找到现有 1.7 JDK 安装的方式。 请注意,oracle jdk 1.7 安装程序会为您将 VM 放入 /Library/Java/JavaVirtualMachines/(2014 年 3 月)【参考方案2】:Oracle 已发布JDK 7 for OS X。
【讨论】:
我将使用最新信息更新答案。如果这不是正确的答案,请告诉我。谢谢。 @Yko - 查看 BasilBourque 的最完整信息(或我的第一个 Oracle JDK7 版本 4) 请注意,为了让应用程序使用 Oracle 的 Java 1.7 来支持 Apple 的 Java 1.6,我必须运行/Library/Java/JavaVirtualMachines/1.7.0.jdk
并将“Java SE 7”拖到“常规”列表的顶部“ 标签。这也将使javac
在运行终端时指向Java 1.7 版本。
Oracle 的 JDK7 不适用于 Snow Leopard。它说它只支持Lion。
@Sangdol - 是的,Oracle 的 Java 实现仅在 Lion 及更高版本上运行。正如我对这个问题的回答中所述。【参考方案3】:
Java 9、10、11
几年前,Apple 加入了 OpenJDK 项目,将其以前专有的 macOS 特定 JVM 代码免费开源。 Apple 停止分发他们自己品牌的 JVM/JDK,依靠 Oracle 的品牌版本来包含 macOS 版本。
Oracle 最近宣布,他们打算将其 Oracle 品牌的 JVM 版本与 OpenJDK 项目的功能相提并论,并具有几乎相同的代码库。该公司甚至将他们以前的商业工具Flight Recorder 和Mission Control 捐赠给了 OpenJDK 项目。这是向新的快速“发布火车”计划转变的一部分,该计划可预测 Java 和 OpenJDK 的预定版本控制。值得注意的是,免费公开更新的时间现在缩短了。请参阅 this 2017-09 announcement 和 this posting by Mark Reinhold。
因此,Java 的 macOS 用户可以选择 Java 实现的供应商。至此,至少有三个源码是基于 OpenJDK for macOS 的:
JDK 和 JRE 的 Oracle releases,提供可选的付费支持。 Azul Systems 发布: Zulu 一系列免费的 JVM,提供可选的付费支持。 Zing 一系列具有特殊功能(例如备用垃圾收集器)的商业 JVM。 OpenJDK source code,自行编译和安装(可能对我们大多数人来说不实用)。同时,IBM 将 JVM 代码捐赠给了 Eclipse 基金会,现在位于 OpenJ9 项目中。我想知道他们是否也支持 macOS 版本,不过现在说还为时过早。
就我个人而言,我目前正在 macOS High Sierra 上成功使用来自 Azul 的 Java 10.0.1 的 Zulu 版本和 IntelliJ 2018.2 来生成带有 Vaadin 的 Java 支持的 Web 应用程序。
安装/拆卸
Oracle 和 Azul 都提供了非常易于使用的安装程序来在您的 Mac 上安装 JVM/JDK。使用 Terminal.app(或等效的)输入并运行来验证您的安装:
java -version
您将在驱动器根目录的此文件夹中找到 Java 安装(而不是在您的主文件夹中):
/库/Java/JavaVirtualMachines
每个供应商的每个版本都可以在那里找到,在一个带标签的嵌套文件夹中。您可以删除任何安装,只需删除该版本的嵌套文件夹并在提示时提供您的系统密码。
Java 8
您可以download the Java Development Kit (JDK) 获取Java 8 获取supported Mac OS X 版本:
山狮 (10.8.3+) 小牛队 (10.9) 优胜美地 (10.10) 埃尔卡皮坦 (10.11)您安装的每个 JVM 版本都可以在这里找到:
/Library/Java/JavaVirtualMachines
有关更多说明和常见问题解答,请参阅this Oracle Guide。
Java 7
对于自更新 4 以来的每个 Java 7 版本,Mac 版本已与其他平台一起准备好。在具有 64 位硬件的 Mac 上运行 Lion (10.7.3+)、Mountain Lion (10.8.3+) 和 Mavericks (10.9.x)。
Oracle announced 于 2012 年 4 月 26 日在 Mac OS X (Lion) 上为 Java SE 7 Update 4 正式发布的 JDK。 不再需要本页讨论的技巧。
根据these instructions,安装很简单:
-
从 Oracle 网站上的 the usual place 下载。
安装 DMG。
运行安装程序。
此版本有一些限制,最明显的是不支持 Java Web Start 和用于网络浏览器的 Java 插件。预计将在今年晚些时候获得这种支持。
安装后,阅读JDK for Mac ReadMe. 最重要的是,如果您希望 Java 7 成为默认设置,请将其拖到 Utilities 文件夹中的 Java Preferences 应用程序的列表顶部。
Mac OS X 可以轻松同时支持多个 JVM。现在每个都可以在这里找到:
/Library/Java/JavaVirtualMachines
祝贺 Apple 和 Oracle 团队取得的成就。看到 Mac OS X 被列为“Certified System Configuration”,这个极客感到非常兴奋。
提示:要在仅安装 Java 7 的 Mac 上启动 Eclipse,请打开名为 eclipse 的 alias 文件,而不是名为 Eclipse.app 的文件。
Java 6
Apple 继续为所有版本的 Mac OS X 提供 Java 6 的最新实现,直至 Mountain Lion。
如果您执行需要 Java 的操作,例如在 Terminal.app 中键入“java -version”,则会出现一个对话框,提示您为您安装 Java。如果您接受,安装会自动进行,类似于 Apple 的其他“软件更新”。
您会发现 Java 安装在此位置,与 Java 7 和 8 不同:
/System/Library/Java/JavaVirtualMachines
截至 2013 年 2 月,Java 6 与 Oracle 有 reached end-of-life(除非您与 Oracle 签订了商业支持协议)。所以你应该迁移到 Java 7 或 8。
测试新版本
在 Terminal.app 中,键入 java -version
以验证哪个版本是当前默认版本。
删除旧版本
安装新版本后,您可能需要访问上述文件夹以删除旧版本。将文件夹移至废纸篓,并提供您的系统密码以完成移动。
顺便说一句,Apple 为开发人员在 OS X 上与 Java 相关的技术问题提供了mailing list。
【讨论】:
谢谢,这对我很有用。也需要在偏好中更改它。 @Tony:是的,在第 4 段中提到了更改首选项。 不起作用。我运行安装程序并报告“成功”,但似乎没有实际安装任何内容。/System/Library/Java/JavaVirtualMachines
仅包含 Java 6 JDK。
@aroth - (a) 查看/Library/Java/JavaVirtualMachines
(不是/System
)。 (b) 您是否阅读了 Oracle 的安装文档 ReadMe
,并按照我上面的回答中所述设置了 Preferences
?
使用 Java 7 r21,我看到 /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/。 Java 控制面板现在可以通过 System Preferences (OSX 10.8.3) 访问【参考方案4】:
在 Mac 上安装 Java 7 的一种简单方法是使用 Homebrew,这要归功于 Homebrew Cask 插件(现在默认安装)。
运行此命令以安装 Java 7:
brew cask install caskroom/versions/java7
【讨论】:
“错误:没有适用于 caskroom/versions/java7 的 cask” @jrochkind 也许你的caskroom/versions
已经过时了?肯定在这里:github.com/caskroom/homebrew-versions/blob/master/Casks/…
@jrochkind 在运行安装命令之前尝试运行brew tap caskroom/versions
@jrochkind 如果这不起作用,请查阅木桶文档,或提出问题:github.com/caskroom/homebrew-cask【参考方案5】:
获取木桶
brew tap caskroom/cask
安装java7:
brew tap caskroom/versions
brew cask install java7
(我很难在 oracle 网站上找到 java7 的下载链接,因为他们只是“推荐”java8)
编辑 2018 年 1 月 (正如 Ankur 指出的那样):
使用zulu7 桶。 Zulu 是由 Azul Systems 生产的经过认证的 OpenJDK 版本,应该存在很长时间(他们甚至仍然提供 JDK6 版本)。
brew cask install caskroom/versions/zulu7
【讨论】:
接受的这个问题的答案已经过时了。这似乎是目前安装 Java 7 的最佳方式。 这个木桶已被移除(参见:github.com/caskroom/homebrew-versions/pull/3914)。建议的替代方法是使用 zulu7。【参考方案6】:我知道有些人可能会因为我重新打开旧帖子而打我,但如果你觉得这样做,我只是希望这可以帮助其他尝试在 Mac OS 上设置 JDK 7(使用 IntelliJ)的人。
为了在我的机器上运行它,我所做的是:
按照Oracle JDK7 Mac OS X Port 上的说明进行常规安装 在 IntelliJ 中打开/创建新项目,以便您可以添加新的 SDK(文件 > 项目结构) 选择平台设置 > SDK,按“+”(加号)添加新的 SDK 选择 JSDK 并导航到 /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home。 不要将其误认为 /Users/YOUR_USERNAME/Library/Java/。这将链接来自“lib”目录的 4 个 JAR(dt.jar、jconsole.jar、sa-jdi.jar 和 tools.jar) 您还需要从 /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre/lib 添加 JAR(charsets.jar、jce.jar、JObjC.jar、jsse.jar、 management-agent.jar、resources.jar 和 rt.jar)【讨论】:
【参考方案7】:您可能仍需要将 JDK 添加到 Eclipse (STS) 中。仅仅因为 JDK 在系统上并不意味着 Eclipse 知道在哪里可以找到它。
转到 首选项 > Java > 已安装的 JRE
如果没有 1.7 JDK 的条目,请添加它。您必须将 Eclipse 指向您安装 1.7 JDK 的位置。
如果 Eclipse 找不到与 1.7 兼容的 JRE,我猜它只是使用您的默认 JRE,并且可能仍指向 Java 1.6,这会导致您的红色波浪线。
【讨论】:
好电话!但我需要一点进一步的指导。我进入 Installed JREs -> Add 并指向 .../jdk1.7.0/jre ,它找到了一堆 JAR 文件。我点击完成。愉快地尝试构建,但现在它说 .../jdk1.7.0/jre/bin/java: 无法执行二进制文件。这是什么意思? 我不太确定。您可以尝试将 eclipse 指向基本 jdk 目录而不是 jre 目录。我认为这就是我通常在 Windows 上完成的方式,尽管我从未关闭过 Mac 上的默认 JDK。如果这不起作用,您可以尝试安装不同的 JDK 7 发行版 - openjdk-osx-build 站点上提供了一些不同的发行版,也许您选择了一个与您的系统不兼容的发行版? 我试过了。它给了我“目标不是 JDK 根。找不到系统库”的错误【参考方案8】:从 oracle 安装 1.7jdk 后,我将 bash 脚本更改为添加:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
然后运行java -version
显示正确的版本。
【讨论】:
【参考方案9】:Netbeans 怎么样,这里有一篇文章如何使用 NB7 进行设置:
http://netbeanside61.blogspot.com/2011/06/downloading-openjdk7-binary-for-mac-os.html
也许 Eclipse 的类似步骤。
【讨论】:
我以前用过netbeans,我会试一试。感谢您的链接。【参考方案10】:截至 4 月 27 日,有一个 offical Oracle release of Java SE 7u4. 下载磁盘映像并运行安装程序 - 然后查看 Mac readme。
【讨论】:
【参考方案11】:截至 2017 年 12 月,之前发布的链接已失效,但仍可从 Oracle 存档下载 JDK 7(需要登录):
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
【讨论】:
【参考方案12】:peter_budo 的说明效果很好。我必须将 /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre/lib/ 下的 jar 添加到我的 IntelliJ 项目库中。现在它就像一个魅力。请注意,我不需要我的 IDE 本身在 1.7 下运行;相反,我只需要能够针对 1.7 进行编译和运行。我很可能会继续使用 Apple 的 JRE 来运行 IDE,因为它在图形例程(Swing、AWT)方面可能更稳定。和 OP 一样,我非常热衷于测试新的 NIO2 API。到目前为止看起来不错。谢谢,彼得。
【讨论】:
【参考方案13】:在 Lion 上对我有用的是从 Oracle 安装 JDK7_u17,然后编辑 ~/.bash_profile 以包括: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
【讨论】:
【参考方案14】:现在,使用命令
2020 年更新:04
使用 homebrew 运行安装 Java7:
brew tap homebrew/cask-versions
brew cask install java7
希望对您有所帮助。
【讨论】:
【参考方案15】:我需要调整@abe312 的答案,因为最近brew
发生了一些变化。
我安装了zulu7并通过运行设置了JAVA_HOME:
brew install --cask homebrew/cask-versions/zulu7
echo "export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-7.jdk/Contents/Home" >> ~/.zshrc
我必须输入密码才能安装 zulu7。如果您使用不同的 shell,您可能需要修改最后一个命令。
【讨论】:
【参考方案16】:我更新到 Yosemite,android Studio 不会清理我的项目或在虚拟或真实设备上运行它们,因为以下错误:
Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
经过一些研究和故障排除,我发现指向“/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home”的JDK文件不存在; “/System/Library/Java”中缺少所有“JavaVirtualMachines/1.6.0.jdk/Contents/Home”。所以,我将“JavaVirtualMachines/1.6.0.jdk/Contents/Home”从“/Library/Java/”复制到“/System/Library/Java/”,然后查了!我又回来做生意了。
【讨论】:
以上是关于如何在 Mac OSX 上使用 JDK 7?的主要内容,如果未能解决你的问题,请参考以下文章
Mac OSX - 如何在bash_profile中配置全局环境变量
如何在 mac osx 10.11 El Capitan 上安装 php 7.4 版? [复制]
如何从 Windows 7 pc 访问 Mac Osx 上的 localhost XAMPP?
如何在 Mac OSX 10.6 上卸载 wxpython 2.8