如何在Mac OSX上使用JDK 7?


107

我想使用此链接中提到的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首选项”,然后看到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 2011年

您的意思是:$ javac WatchDir.java,然后$ Java WatchDir?我会尝试的。谢谢!尽管我希望它可以在Eclipse IDE中使用。
okysabeni 2011年

1
从今天开始,Oracle正式发布-Java SE 7u4
mmmmmm

确保您使用的是64位Eclipse。没有运气在任何选项下在1.7 jvm上运行32位。
tuxSlayer

更新:Java 7 现已停产。要继续使用Java的长期支持(LTS)版本,请参阅:如何在Mac上安装Java 8获取用于macOS的Java 11?
罗勒·布尔克

Answers:


61

Oracle已经发布了用于OS X的JDK 7


我将用最新信息更新答案。如果这不是正确的答案,请告诉我。谢谢。
okysabeni 2012年

@Yko-查看BasilBourque以获得最完整的信息(或者我的第一个Oracle JDK7版本4)
mmmmmm 2012年

12
请注意,为了使应用程序使用Oracle的Java 1.7而不是Apple的Java 1.6,我必须运行/Library/Java/JavaVirtualMachines/1.7.0.jdk“ Java SE 7”并将其拖动到“常规”选项卡上列表的顶部。javac运行终端时,这还将指向Java 1.7版本。
sschuberth 2012年

2
Oracle的JDK7无法在Snow Leopard上运行。它说只支持Lion。
Sanghyun Lee

@Sangdol-是的,Oracle的Java实现仅在Lion和更高版本上运行。正如我对这个问题的回答所指出的。
罗勒·布尔克

88

这就是我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复制到默认1.6.0旁边的/ Library / Java / JavaVirtualMachines /
  3. 在Eclipse>首选项> Java>已安装的JRE中,添加一个新的MacOS X VM,并将主目录设置为/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home,并命名Java SE 7(OpenJDK)
  4. 点击完成
  5. 将添加的JRE设置为默认值

那应该是:)


感谢我的信使完全挂了..所以我尝试使用SDK 1.7完美地工作!:=)
cV2

1
该项目(openjdk-osx-build)已关闭,不再提供任何下载。
aroth

步骤2可以是:运行downladed jdk-7u40-macosx-x64.dmg,它将自动将文件添加到路径
Michal

将已安装的JRE添加到Eclipse时,Eclipse也可以“搜索”已安装的JRE。这就是我找到现有的1.7 JDK安装的方式。
jvriesem

请注意,oracle jdk 1.7安装程序将为您将VM放入/ Library / Java / JavaVirtualMachines /(2014
Chris Thorne

55

Java 9、10、11

多年前,苹果公司加入了OpenJDK项目,将其以前专有的macOS专有JVM代码作为免费开源进行了转移。苹果公司停止发行自己的品牌JVM / JDK,而是依靠Oracle的品牌发行版包括适用于macOS的版本。

Oracle最近宣布了他们的意图,即以相同的代码库将其Oracle品牌的JVM版本与OpenJDK项目实现同等功能。该公司甚至将他们以前的商业工具“ 飞行记录器任务控制”捐赠给了OpenJDK项目。这是转向新的快速“发布培训”计划的一部分,该计划用于Java和OpenJDK的可预见的计划版本控制。值得注意的是,免费更新的时间现在缩短了。请参阅此2017-09公告Mark Reinhold的发布

因此,Java的macOS用户可以选择Java实现的供应商。此时,至少有三个来源基于适用于macOS的OpenJDK:

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

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

我个人目前正在IntelliJ 2018.2上成功地在macOS High Sierra上成功使用macOS High Sierra上Azul 的Zulu Java 10.0.1发行版,以通过Vaadin生产Java支持的Web应用程序。

安装/拆卸

Oracle和Azul都提供了完全易于使用的安装程序,可以在Mac上安装JVM / JDK。使用Terminal.app(或等效版本)键入并运行,以验证安装:

java -version

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

/图书馆/ Java / JavaVirtualMachines

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

Java 8

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

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

您可以在此处找到安装的每个JVM版本:

/Library/Java/JavaVirtualMachines

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

Java 7

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

甲骨文宣布于2012-04-26在Mac OS X(Lion)上正式发布JDK for Java SE 7 Update 4。不再需要本页讨论的技巧

按照以下说明进行安装很简单:

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

该发行版有一些限制,最明显的是缺少对Java Web Start和Web浏览器的Java插件的支持。预计将在今年晚些时候提供支持。

安装后,请阅读JDK for Mac自述文件。最重要的是,如果要将Java 7设置为默认值,请将其拖到实用程序”文件夹中“ Java首选项”应用程序中列表的顶部。

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

/Library/Java/JavaVirtualMachines

祝贺Apple和Oracle团队取得的成就。看到Mac OS X被列为“ 认证的系统配置 ”,这个极客感到非常兴奋。

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

Java 6

苹果继续通过Mountain Lion为所有版本的Mac OS X提供Java 6的最新实现。

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

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

/System/Library/Java/JavaVirtualMachines

Java 6中已经达到了结束生命与Oracle作为2013-02(除非你有一个与Oracle的商业支持协议)。因此,您应该转向Java 7或8。

测试新版本

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

删除旧版本

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


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


谢谢,这对我来说很棒。也需要更改它的首选项。

@Tony:是的,第4段提到了更改首选项。
罗勒·布尔克

不起作用 我运行安装程序,它报告“成功”,但似乎没有安装任何东西。 /System/Library/Java/JavaVirtualMachines仅包含Java 6 JDK。
aroth

4
@aroth-(a)看/Library/Java/JavaVirtualMachines(不是/System)。(b)您是否按照上面的答案阅读了Oracle的安装文档ReadMe,和Preferences
罗勒·布尔克

1
对于Java 7 r21,我看到了/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/。Java控制面板现在通过系统预置(OSX 10.8.3)访问
索菲软件有限责任公司

17

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

运行以下命令以安装Java 7:

brew cask install caskroom/versions/java7

“错误:caskroom / versions / java7没有可用的容器”
jrochkind

@jrochkind也许您caskroom/versions已经过时了?绝对在这里:github.com/caskroom/homebrew-versions/blob/master/Casks/…–
Andrew

@jrochkind brew tap caskroom/versions在运行安装命令之前尝试运行
Andrew

@jrochkind如果这不起作用,请查阅桶文档或提出问题:github.com/caskroom/homebrew-cask
Andrew

13

取桶

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。
ANKUR

9

我知道有些人可能想打点我重新打开旧帖子,但是如果您愿意,我只是希望这可以对其他尝试在Mac OS(使用IntelliJ)上设置JDK 7的人有所帮助。

为了使此功能在我的机器上正常运行,我要做的是:

  • 按照Oracle JDK7 Mac OS X端口上的说明进行常规安装
  • 在IntelliJ中打开/创建新项目,以便您可以添加新的SDK(“文件”>“项目结构”)
  • 选择平台设置> SDK,然后按“ +”(加号)以添加新的SDK
  • 选择JSDK并导航到/ Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home。不要将它与/ Users / YOUR_USERNAME / Library / Java /混淆。这将从“ lib”目录(dt.jar,jconsole.jar,sa-jdi.jar和tools.jar)链接4个JAR。
  • 您还需要从/ Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib(charsets.jar,jce.jar,JobjC.jar,jsse.jar,管理代理)添加JAR .jar,resources.jar和rt.jar)

6

您可能仍需要将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:无法执行二进制文件。那是什么意思?
okysabeni 2011年

我不太确定 您可以尝试将eclipse指向基本jdk目录而不是jre目录。我认为这是我通常在Windows上所做的事情,尽管我从未关闭过Mac上的默认JDK。如果那行不通,您可以尝试安装其他发行版的JDK 7-openjdk-osx-build站点上有几种可用的发行版,也许您抓住了与您的系统不兼容的发行版?
Jon Quarfoth 2011年

我已经尝试过了。它给我“目标不是JDK根目录。找不到系统库”的错误
okysabeni

6

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

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

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





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


1

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


0

我更新到优胜美地,并且由于以下错误,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 /”并开始了!我又回到公司了。


0

现在,使用命令

2020更新:04

要使用自制软件安装Java7,请运行:

brew tap homebrew/cask-versions
brew cask install java7

希望能有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.