如何在Mac OSX上使用JDK 7?

oky*_*eni 107 java macos java-7

我想使用此链接中提到的WatchService API:http: //download.oracle.com/javase/tutorial/essential/io/notification.html

阅读后,我发现WatchService是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应用程序运行.

我需要做什么?

小智 88

这就是我使用Eclipse的1.7.我希望它有所帮助.

  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 JRE中,添加一个类型为MacOS X VM的新版本,并将home设置为/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home并命名为Java SE 7(OpenJDK)
  4. 单击完成
  5. 将添加的JRE设置为默认值

那应该是:)


小智 61

Oracle已经发布了OS X的JDK 7.

  • 请注意,为了使应用程序使用Oracle的Java 1.7支持Apple的Java 1.6,我必须运行`/ Library/Java/JavaVirtualMachines/1.7.0.jdk`并将"Java SE 7"拖到列表顶部"常规"选项卡.这也将使`javac`在运行终端时指向Java 1.7版本. (12认同)
  • Oracle的JDK7不适用于Snow Leopard.它说它只支持Lion. (2认同)

Bas*_*que 56

Java 9,10,11

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

甲骨文最近宣布,他们打算将他们的Oracle品牌的JVM版本与OpenJDK项目进行同等功能,几乎完全相同的代码库.该公司甚至将他们以前的商业工具Flight RecorderMission 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向Eclipse基金会捐赠了JVM代码,现在已经安装在OpenJ9项目中.我想知道他们是否也支持macOS发布,尽管现在还为时尚早.

就个人而言,我目前使用的祖鲁从阿祖尔在MacOS高塞拉利昂的Java 10.0.1释放与成功的IntelliJ 2018.2产生与Java支持的Web应用程序Vaadin.

安装/拆卸

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

java -version
Run Code Online (Sandbox Code Playgroud)

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

/图书馆/的Java/JavaVirtualMachines

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

Java 8

您可以为受支持的Mac OS X版本下载适用于Java 8 的Java Development Kit(JDK):

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

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

/Library/Java/JavaVirtualMachines
Run Code Online (Sandbox Code Playgroud)

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

Java 7

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

Oracle 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成为默认值,请将其拖到" Utilities"文件夹中的" Java Preferences"应用程序列表的顶部.

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

/Library/Java/JavaVirtualMachines
Run Code Online (Sandbox Code Playgroud)

祝贺Apple和Oracle团队取得成就.看到Mac OS X被列为" 认证系统配置 ",这个极客会感到兴奋.

提示:要在仅安装了Java 7的Mac上启动Eclipse,请打开名为eclipse别名文件,而不是名为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
Run Code Online (Sandbox Code Playgroud)

截至2013-02,Java 6已经达到了Oracle的终止(除非您与Oracle签订了商业支持协议).所以你应该转向Java 7或8.

测试新版本

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

删除旧版本

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


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

  • @aroth - (a)查看`/ Library/Java/JavaVirtualMachines`(不是`/ System`).(b)您是否阅读了Oracle的安装文档,"ReadMe",并设置了我在上面的答案中描述的"首选项"? (4认同)

And*_*rew 17

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

运行此命令以安装Java 7:

brew cask install caskroom/versions/java7
Run Code Online (Sandbox Code Playgroud)


pet*_*udo 9

我知道有些人可能想要重新打开旧帖子,但如果你这样做我只希望这可以帮助其他人试图在Mac OS上设置JDK 7(使用IntelliJ).

我在我的机器上工作的方法是:

  • 按照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.
  • 你将需要也/图书馆/的Java/JavaVirtualMachines/JDK 1.7.0开发Preview.jdk /内容/首页/ JRE/lib目录(charsets.jar,jce.jar,JObjC.jar,jsse.jar,管理代理添加的JAR .jar,resources.jar和rt.jar)


abe*_*312 9

得到桶

brew tap caskroom/cask
Run Code Online (Sandbox Code Playgroud)

安装java7:

brew tap caskroom/versions
brew cask install java7
Run Code Online (Sandbox Code Playgroud)

(我很难在oracle网站上找到java7的下载链接,因为他们只是"推荐"java8)

编辑2018年1月 (Ankur指出):

使用zulu7桶.Zulu是由Azul Systems生产的OpenJDK认证版本,应该存在很长时间(它们甚至还提供JDK6版本).

brew cask install caskroom/versions/zulu7
Run Code Online (Sandbox Code Playgroud)


Jon*_*oth 6

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

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

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

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


Dus*_*etz 6

从oracle安装1.7jdk之后,我改变了我的bash脚本来添加:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

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