簡體   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