繁体   English   中英

如何在 Mac OSX 上使用 JDK 7?

[英]How do I use JDK 7 on Mac OSX?

I would like to use the WatchService API as mentioned in this link: http://download.oracle.com/javase/tutorial/essential/io/notification.html

阅读后,我发现 WatchService 是为 JDK 7 计划的 NIO class 的一部分。因此,它是 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.Z93F725A07423FE1C889F448B33D21F46

于是,我启动Eclipse(其实我用的是STS),新建一个Java项目,在“使用执行环境JRE:”中选择JaveSE-1.7。 在 src 文件夹下,我复制粘贴了 WatchDir.java 文件。

而且我仍然看到大量弯曲的红线。 所有“import.java.nio.*”都是红色的,我无法将其作为 Java 应用程序运行。

我需要做什么?

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

  1. I Downloaded the latest OpenJDK 1.7 universal (32/64 bits) JDK from Mac OS/X branch from http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. 把jdk复制到/Library/Java/JavaVirtualMachines/旁边默认1.6.0一个
  3. In Eclipse > Preferences > Java > Installed JREs you add a new one, of type MacOS X VM, and set the home as /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home and name Java SE 7 (OpenJDK)
  4. 点击完成
  5. 将添加的 JRE 设置为默认值

应该是这样的:)

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

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 的:

  • JDK 和 JRE 的Oracle 版本,具有可选的付费支持。
  • Azul Systems发布:
    • Zulu系列免费 JVM,具有可选的付费支持。
    • Zing系列商业 JVM 具有特殊功能,例如备用垃圾收集器。
  • OpenJDK 源代码,自行编译和安装(可能对我们大多数人来说不实用)。

同时,IBM 将 JVM 的代码捐赠给了 Eclipse 基金会,该基金会现在位于OpenJ9项目中。 我想知道他们是否也可能支持 macOS 版本,尽管现在说还为时过早。

就个人而言,我目前正在使用来自 Azul 的 Java 10.0.1 的Zulu版本在 macOS High Sierra 上成功地与IntelliJ 2018.2 一起使用Vaadin生成 Java 支持的 web 应用程序。

安装/拆卸

Oracle 和 Azul 都提供了非常易于使用的安装程序来在您的 Mac 上安装 JVM/JDK。 使用 Terminal.app(或等效的)输入并运行来验证您的安装:

java -version

您将在驱动器根目录的此文件夹中找到 Java 安装(不在您的主文件夹中):

/库/Java/JavaVirtualMachines

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

Java 8

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

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

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

/Library/Java/JavaVirtualMachines

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

Java 7

对于自更新 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 web 站点上的常规位置下载。
  2. 安装 DMG。
  3. 运行安装程序。

This release has a few limitations, most notably the lack of support for Java Web Start and the Java Plugin for web browsers. 预计将在今年晚些时候获得这种支持。

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

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

/Library/Java/JavaVirtualMachines

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

Tip: To start Eclipse on a Mac with only Java 7 installed, open the alias file named eclipse rather than the file named Eclipse.app .

Java 6

Apple 继续为一直到 Mountain Lion 的所有 Mac OS X 版本提供 Java 6 的最新实施。

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

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

/System/Library/Java/JavaVirtualMachines

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

测试新版本

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

删除旧版本

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


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

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

运行此命令安装 Java 7:

brew cask install caskroom/versions/java7

获取木桶

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

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

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

  • 按照Oracle JDK7 Mac OS X Port的说明进行常规安装
  • 在 IntelliJ 打开/创建新项目,以便您可以添加新的 SDK(文件 > 项目结构)
  • select 平台设置 > SDK,按“+”(加号)添加新的 SDK
  • select JSDK 并导航到 /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home。 不要误认为/Users/YOUR_USERNAME/Library/Java/ This will link 4 JARs from "lib" directory (dt.jar, jconsole.jar, sa-jdi.jar and tools.jar)
  • you will need also add JARs from /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre/lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, 资源.jar 和 rt.jar)

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

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

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

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

Go 到首选项 > Java > 安装的 JRE

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

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

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

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

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

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

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

Eclipse 可能有类似的步骤。

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

现在,使用命令

2020 年更新:04

使用 homebrew 安装 Java7:

brew tap homebrew/cask-versions
brew cask install java7

希望这有帮助。

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

peter_budo 的说明效果很好。 我必须将/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre/lib/下的 jars 添加到我的 IntelliJ 项目库中。 现在它就像一个魅力。 请注意,我不需要我的 IDE 本身在 1.7 下运行; 相反,我只需要能够针对 1.7 进行编译和运行。 我很可能会继续使用 Apple 的 JRE 来运行 IDE,因为它在图形例程(Swing,AWT)方面可能更稳定。 和 OP 一样,我非常热衷于测试新的 NIO2 API。 到目前为止看起来不错。 谢谢,彼得。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM