如何在Mac OSX上使用JDK 7?

109
我想使用WatchService API,这个链接提到了它: http://download.oracle.com/javase/tutorial/essential/io/notification.html
阅读一些资料后我发现WatchService是NIO类的一部分,而NIO类已经被安排在JDK 7中。所以,它处于测试版状态,这没关系。 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应用程序运行。
我需要做什么?

你能在控制台上运行和编译它吗? - dmeister
你的意思是运行 $javac WatchDir.java 然后执行 $ Java WatchDir 吗?我会尝试一下。谢谢!虽然我希望它能在 Eclipse IDE 中使用。 - oky_sabeni
1
从今天开始,官方发布了Oracle Java SE 7u4版本。 - mmmmmm
请确保您正在使用64位的Eclipse。在1.7 jvm上,无论使用哪些选项,都无法运行32位的Eclipse。 - tuxSlayer
更新:Java 7现已终止生命周期。要转向Java的长期支持(LTS)版本,请参见:如何在Mac上安装Java 8如何获取macOS的Java 11? - Basil Bourque
16个回答

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

2

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

1

peter_budo的指示完美地运作。我不得不将JAR添加到/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre/lib/下的IntelliJ项目库中。现在它像魔法一样工作。请注意,我不需要我的IDE本身在1.7下运行;相反,我只需要能够编译和运行1.7。我很可能继续使用Apple的JRE来运行IDE,因为它对于图形例程(Swing,AWT)可能更稳定。与OP一样,我非常热衷于测试新的NIO2 API。迄今为止看起来不错。谢谢,Peter。


1
现在,请使用命令:
更新 2020 年 04 月
要使用 homebrew 安装 Java7,请运行以下命令:
brew tap homebrew/cask-versions
brew cask install java7

希望这有所帮助。

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”。所以,我将“/Library/Java/”中的“JavaVirtualMachines/1.6.0.jdk/Contents/Home”复制到“/System/Library/Java/”,然后就成功了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接