109

我想使用此链接中提到的 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 应用程序运行。

我需要做什么?

4

16 回答 16

87

这就是我如何让 1.7 与 Eclipse 一起工作。我希望它有所帮助。

  1. 我从http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html的 Mac OS/X 分支下载了最新的 OpenJDK 1.7 通用(32/64 位)JDK
  2. 把jdk复制到/Library/Java/JavaVirtualMachines/旁边默认1.6.0一个
  3. 在 Eclipse > Preferences > Java > Installed JREs 添加一个新的,类型为 MacOS X VM,并将 home 设置为 /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home 并命名 Java SE 7 (OpenJDK)
  4. 点击完成
  5. 将添加的 JRE 设置为默认值

应该是这样的:)

于 2011-10-20T22:22:45.780 回答
62

Oracle 已发布适用于 OS X 的 JDK 7

于 2012-05-01T11:54:08.857 回答
56

Java 9、10、11

多年前,Apple 加入了OpenJDK项目,将其以前专有的 macOS 特定 JVM 代码作为免费的开源代码进行了转移。Apple 停止分发自己品牌的 JVM/JDK,依靠 Oracle 的品牌版本来包含 macOS 版本。

Oracle 最近宣布,他们打算将其 Oracle 品牌的 JVM 版本与 OpenJDK 项目具有同等的功能,并具有几乎相同的代码库。该公司甚至将他们以前的商业工具Flight Recorder & Mission Control捐赠给了 OpenJDK 项目。这是向新的快速“发布火车”计划转变的一部分,该计划可预测 Java 和 OpenJDK 的预定版本控制。值得注意的是,免费公开更新的时间现在缩短了。请参阅此 2017-09 公告Mark Reinhold 的此帖子

由于这一切,Java 的 macOS 用户可以选择 Java 实现的供应商。至此,至少有三个源是基于 OpenJDK for macOS 的:

同时,IBM 向 Eclipse 基金会捐赠了 JVM 代码,该基金会现在位于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

每个供应商的每个版本都在那里,在一个标记的嵌套文件夹中。您只需删除该版本的嵌套文件夹并在出现提示时提供系统密码即可删除任何安装。

爪哇 8

您可以下载适用于 Mac OS X支持版本的Java 8Java 开发工具包 (JDK) :

  • 山狮 (10.8.3+)
  • 小牛队(10.9)
  • 优胜美地 (10.10)
  • 埃尔卡皮坦 (10.11)

您安装的每个版本的 JVM 都可以在这里找到:

/Library/Java/JavaVirtualMachines

有关更多说明和常见问题解答,请参阅此 Oracle 指南

爪哇 7

对于自 Update 4 以来的每个Java 7版本,Mac 版本已与其他平台一起准备就绪。在具有 64 位硬件的 Mac 上运行 Lion (10.7.3+)、Mountain Lion (10.8.3+) 和 Mavericks (10.9.x)。

Oracle于 2012 年 4 月 26 日宣布正式发布适用于 Mac OS X (Lion) 上的 Java SE 7 Update 4 的 JDK。不再需要本页讨论的技巧。

按照这些说明安装很简单:

  1. 从Oracle 网站上的常用位置下载。
  2. 安装 DMG。
  3. 运行安装程序。

此版本有一些限制,最明显的是缺乏对Java Web Start和用于 Web 浏览器的Java 插件的支持。预计将在今年晚些时候获得这种支持。

安装后,阅读JDK for Mac 自述文件。最重要的是,如果您希望 Java 7 成为默认设置,请将其拖到 Utilities 文件夹中的Java Preferences应用程序的列表顶部。

Mac OS X 可以轻松同时支持多个 JVM。现在每个都可以在这里找到:

/Library/Java/JavaVirtualMachines

祝贺 Apple 和 Oracle 团队取得的成就。这位极客看到 Mac OS X 被列为“认证系统配置”而激动不已。

提示:要在仅安装 Java 7 的 Mac 上启动Eclipse,请打开名为eclipse的别名文件,而不是名为Eclipse.app的文件。

爪哇 6

Apple 继续为至 Mountain Lion 的所有 Mac OS X 版本提供 Java 6 的最新实现。

如果您执行需要 Java 的操作,例如在 Terminal.app 中键入“java -version”,则会出现一个对话框,提示您为您安装 Java。如果您接受,安装会自动进行,类似于 Apple 的其他“软件更新”。

您会发现 Java 安装在此位置,与 Java 7 和 8 不同:

/System/Library/Java/JavaVirtualMachines

Java 6 已于2013 年 2 月与 Oracle 一起结束生命周期(除非您与 Oracle 签订了商业支持协议)。所以你应该迁移到 Java 7 或 8。

测试新版本

在 Terminal.app 中,键入java -version以验证哪个版本是当前默认版本。

删除旧版本

安装新版本后,您可能需要访问上述文件夹以删除旧版本。将文件夹移至废纸篓,并提供您的系统密码以完成移动。


顺便说一句,Apple为开发人员在 OS X 上与 Java 相关的技术问题提供了一个邮件列表。

于 2012-04-27T21:40:46.213 回答
17

在 Mac 上安装 Java 7 的一种简单方法是使用Homebrew,这要归功于Homebrew Cask插件(现在默认安装)。

运行以下命令安装 Java 7:

brew cask install caskroom/versions/java7
于 2015-11-09T23:36:32.237 回答
14

获取木桶

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
于 2016-12-29T14:20:31.810 回答
9

我知道有些人可能会因为我重新打开旧帖子而打我,但如果你觉得这样做,我只是希望这可以帮助其他人尝试在 Mac OS 上设置 JDK 7(使用 IntelliJ)。

我为在我的机器上工作所做的工作是:

  • 按照Oracle JDK7 Mac OS X Port上的说明进行一般安装
  • 在 IntelliJ 打开/创建新项目,以便您可以添加新的 SDK(文件 > 项目结构)
  • 选择 Platform Settings > SDKs,按“+”(加号)添加新的 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)
于 2011-11-08T11:00:18.980 回答
6

您可能仍需要将 JDK 添加到 Eclipse (STS) 中。仅仅因为 JDK 在系统上并不意味着 Eclipse 知道在哪里可以找到它。

转到首选项 > Java > 已安装的 JRE

如果没有 1.7 JDK 的条目,请添加它。您必须将 Eclipse 指向您安装 1.7 JDK 的位置。

如果 Eclipse 找不到兼容 1.7 的 JRE,我猜它只是使用您的默认 JRE,并且可能仍然指向 Java 1.6,这将导致您的红色波浪线。

于 2011-06-07T15:37:00.157 回答
6

从 oracle 安装 1.7jdk 后,我更改了 bash 脚本以添加:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home

然后运行java -version显示正确的版本。

于 2013-02-15T21:44:41.067 回答
2

Netbeans 怎么样,这里有一篇文章如何使用 NB7 进行设置:

http://netbeanside61.blogspot.com/2011/06/downloading-openjdk7-binary-for-mac-os.html

Eclipse 可能有类似的步骤。

于 2011-07-25T06:15:56.540 回答
2

截至 4 月 27 日,Oracle 正式发布了 Java SE 7u4。下载磁盘映像并运行安装程序 - 然后查看Mac 自述文件。

于 2012-04-27T21:32:37.880 回答
2

截至 2017 年 12 月,之前发布的链接已失效,但仍可从 Oracle 存档下载 JDK 7(需要登录):

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

于 2017-12-06T18:33:25.093 回答
1

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。到目前为止看起来不错。谢谢,彼得。

于 2011-12-11T22:43:47.627 回答
1

在 Lion 上对我有用的是从 Oracle 安装 JDK7_u17,然后编辑 ~/.bash_profile 以包括: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home

于 2013-03-08T13:16:20.243 回答
1

现在,使用命令

2020 年更新:04

使用 homebrew 安装 Java7:

brew tap homebrew/cask-versions
brew cask install java7

希望这有帮助。

于 2020-04-28T09:38:08.567 回答
1

我需要调整@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,您可能需要修改最后一个命令。

于 2021-01-05T21:26:52.063 回答
0

由于以下错误,我更新到 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/”,然后查了!我回来做生意了。

于 2015-09-12T04:47:46.023 回答