[英]How to install Java 8 on Mac
編者注:這個問題是在 2014 年提出的,答案可能已經過時了。
我想用最新的 JavaFX 進行一些編程,這需要 Java 8。我正在使用 IntelliJ 13 CE 和 Mac OS X 9 Mavericks。 我運行了 Oracle 的 Java 8 安裝程序,文件看起來像是在
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
但以前的版本在
/System/Library/Java/JavaFrameworks/jdk1.6....
不知道為什么最新的安裝程序將它放在/Library
而不是/System/Library
(也不知道有什么區別)。 但是/usr/libexec/java_home
找不到 1.8,所以我找到的關於如何設置當前 java 版本的所有帖子都不起作用。 我試過添加一個符號鏈接,讓它看起來像 1.8 在/System/Library...
路徑中,但它沒有幫助。 /usr/libexec/java_home -V
仍然只列出舊的 Java 1.6。
諷刺的是,系統偏好設置下的“Java”控制面板只顯示Java 1.8!
為什么 Oracle 的安裝程序不把它放在它真正去的地方? 我該如何解決這個問題?
Oracle 在簡化Java 安裝和配置方面的記錄不佳,但使用Homebrew ,可以通過以下方式安裝最新的 OpenJDK (Java 14):
brew install --cask adoptopenjdk8
對於依賴於舊版本(通常是 Java 8)的許多用例, AdoptOpenJDK項目通過一個額外的步驟使其成為可能。
brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8
Homebrew 的現有用戶可能會遇到Error: Cask adoptopenjdk8 exists in multiple taps
由於先前使用不同指令的變通方法, Error: Cask adoptopenjdk8 exists in multiple taps
。 這可以通過使用brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
完全指定位置來解決。
注意:Oracle Java 8/9/10 不再可供公共下載(許可證更改)。
首先從終端安裝和更新brew :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap homebrew/cask-versions
brew update
2019 年 6 月新增
要從 AdoptOpenJDK 安裝 JDK:
brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11
老的
爪哇 8:
brew install --cask java8
Java最新:
brew install --cask java
Java8 在 homebrew 上不再可用, brew install java8
將不起作用。
相反,使用:
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
有關技術細節,請參閱此提交。
還請注意,您可能會發現Cask adoptopenjdk8 exists in multiple taps
有關Cask adoptopenjdk8 exists in multiple taps
問題。 這是一個已知問題,目前正在解決中,您可以在此處查看:
https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106
對於那些不想詳細介紹的人,這里是一個摘要:
# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup
我只是在我的 MBP 上做了這個,並且不得不使用
$ brew tap homebrew/cask-versions
$ brew cask install java8
為了讓java8安裝。
假設:Mac 機器並且您已經安裝了自制軟件。
安裝 cask(使用 Homebrew 0.9.5 或更高版本,包含 cask,因此跳過此步驟):
$ brew tap caskroom/cask
$ brew tap caskroom/versions
安裝最新的java:
$ brew cask install java
要安裝 Java 8:
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8
如果要安裝/管理多個版本,則可以使用“jenv”:
安裝和配置 jenv:
$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
將已安裝的 java 添加到 jenv 中:
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home
要查看所有已安裝的 java:
$ jenv versions
上面的命令將給出已安裝的java列表:
* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea
配置要使用的 java 版本:
$ jenv global oracle64-1.6.0.39
設置 JAVA_HOME:
$ jenv enable-plugin export
我開始真正喜歡在本地計算機上運行應用程序的一個選項是使用 Docker。 您可以簡單地在官方 JDK 容器中運行您的應用程序 - 這意味着您不必擔心在本地機器上設置所有內容(或擔心為不同的應用程序運行多個不同版本的 JDK 等)
雖然這可能無法幫助您解決當前的安裝問題,但它是一個解決方案,這意味着您可以避開與嘗試讓 Java 在您的開發機器上正確運行相關的問題雷區!
好處是:
一個非常簡單的例子:
創建一個Dockerfile
:
FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
java:8
- 要使用 Java 7,您可以指定: java:7
)/usr/src/myapp
創建一個docker-compose.yml
文件:
version: "2"
services:
java:
build: .
volumes:
- .:/usr/src/myapp
現在,假設我們有這個 Java 文件:
你好世界
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
所以我們有以下文件結構:
.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java
您可以執行各種 Java 操作,例如:
編譯:
docker-compose run --rm java javac HelloWorld.java
跑:
docker-compose run --rm java java HelloWorld
docker-compose run
- 從容器內運行命令-rm
告訴-rm
在命令運行完成后移除容器java
是此命令將針對其運行的服務/容器的名稱(來自我們的 docker-compose 文件)這是一種非常酷的方法,可以為不同的應用程序運行不同版本的 Java,而不會弄亂您的本地設置:)。
這是一個稍微復雜的例子,它有Maven 和一個簡單的 Spring 應用程序
免責聲明:
brew
brew install openjdk@8
也許您需要更新PATH
:
export PATH="/usr/local/opt/openjdk@8/bin:$PATH"
sdkman
比brew
"raw" 更好,但你必須在有 jdk 之前安裝它curl -s "https://get.sdkman.io" | bash
然后打開一個新的 shell並嘗試list
看看你可以安裝什么;-)
sdk list java
sdk install java 8.0.282.hs-adpt
/Library/Java/JavaVirtualMachines/
是安裝 JVM 的正確位置。 這種情況已經持續了好幾年了。 許多年前,其他地方曾被使用過,但現在不再使用了。
您可以選擇多個供應商來獲取安裝程序應用程序,以便在您的 Mac 上安裝 Java 實現。 下載安裝程序以在本地運行,然后丟棄,就像您通常對許多應用程序所做的那樣。
您的問題提到了JavaFX /OpenJFX。 您可能會發現使用與 OpenJFX 庫捆綁在一起的 Java 實現很方便,例如來自 BellSoft 的LibericaFX或來自 Azul Systems 的ZuluFX 。
其他建議Homebrew包管理器的答案對我來說似乎有點極端。 我相信Homebrew有一些很好的用途。 但是要簡單地運行 Java 或進行 Java 編程,安裝Homebrew是一個不必要的額外步驟。 為獲得 Java 的單一目標而安裝Homebrew (包管理器)就像構建一個着陸帶來停放您的汽車,而不是使用您的車道。 如果您已經擁有它,那很好,請使用它。 但是向那些只需要 Java 的人推薦Homebrew是一個糟糕的建議。
尚未使用 Home-brew 的人可以簡單地從受信任的來源下載 Mac 安裝程序。
您有多個來源可以獲取易於使用的安裝程序應用程序,以便將 Java 安裝到您的 Mac 上。 在 Mac 上運行安裝程序,就像在許多其他應用程序中一樣。
這是查找 Java 11 源的流程圖,其中一些還提供 Java 8。
從 Adoptium(AdoptOpenJDK.net) 等供應商處下載安裝程序。
運行安裝程序。
JavaVirtualMachines
文件夾現在是正確的為什么 Oracle 的安裝程序不把它放在真正需要的地方? 我該如何解決這個問題?
不是問題。
文件夾/Library/Java/JavaVirtualMachines/
是macOS上JVM的新家。
要安裝 JVM,請使用下面討論的安裝程序。
要卸載,只需使用 Finder 從該文件夾中刪除 JVM。 系統將提示您輸入系統管理員密碼以完成刪除。
早在 2010 年, Apple與Oracle 、 IBM 、 Red Hat 、 Azul和其他 Java 供應商一起加入了OpenJDK項目。 每個成員都為統一的 OpenJDK 代碼庫貢獻源代碼、測試和反饋。
Apple 為其 JVM 貢獻了大部分 Mac 特定代碼。 現在 Apple 不再發布自己的 Mac 專用 JVM。 您現在可以選擇 JVM 供應商,構建來自 OpenJDK 代碼庫。
您將在以下位置找到源代碼: http : //openjdk.java.net
請注意,在 2017 年,Oracle、JCP 和 OpenJDK 都采用了新的快速“發布列車”計划,以可預測的方式交付定期安排的 Java 版本。
閱讀這篇 2018 年 7 月的 Azul Systems 博客文章以了解更多詳細信息, Simon Ritter 的《消除 Java 更新混淆》 。
另請閱讀Java 仍然免費。
有關過去和現在 JVM 實現的詳盡列表,請參閱Wikipedia 上的此頁面。
這是對一些供應商的討論。 有關更多供應商,請參閱上面的流程圖
Oracle 為包括 macOS 在內的多個平台提供 JDK 和 JRE 安裝程序。
在收購 Sun 的這些年里,Oracle 結合了兩個 JVM 引擎HotSpot和JRocket的最佳部分,並將它們合並到OpenJDK項目中,作為他們自己品牌的 Java 實現的基礎。
截至 2018 年,他們的新業務計划是提供 Oracle 品牌的 Java 實現,在生產中收費,在開發/測試/演示中免費使用。 對以前版本的支持需要付費支持計划。 他們已經宣布他們打算讓他們的品牌版本與 OpenJDK 版本具有相同的功能。 他們甚至向 OpenJDK 項目捐贈了他們的商業附加組件,例如Flight Recorder 。
Oracle 還發布了一個不支持的 OpenJDK 版本: http : //jdk.java.net/
Oracle 制作了一個特殊用途的 JDK, GraalVM 。
Azul Systems提供了多種 JVM 產品。
Zulu
線直接基於 OpenJDK,並且可以通過可選的付費支持計划免費獲得。Zing
系列提供商業 JVM 產品,增強了替代技術實現,例如專門的垃圾收集器。他們的兩條產品線都提供適用於 macOS 的安裝程序。
我目前在 macOS High Sierra上使用Zulu for Java 10.0.1 和IntelliJ 2018.2 和Vaadin 8 。 我是從這個頁面下載的。 順便說一句,我沒有在 Apple系統偏好設置應用程序上找到任何與 Java 相關的項目。
Adoptium ,以前稱為AdoptOpenJDK ,是一個社區主導的項目,旨在構建 OpenJDK 源代碼的二進制文件。 許多其他 Java 實現供應商都支持 Adoptium 的這項工作。
OpenJ9項目是 JVM 引擎的另一個實現,是HotSpot的替代品。
現在由 Eclipse 基金會贊助,技術和支持由 IBM 於 2017 年捐贈。
對於預構建的二進制文件,他們建議您參考上述的AdoptOpenJDK項目。
Oracle 或 Azul 提供的安裝程序都非常易於操作。 只需在 Mac 上運行安裝程序即可。 將出現一個窗口,指示安裝進度。
完成后,通過以下方式驗證您的 JVM 安裝:
/Library/Java/JavaVirtualMachines/
文件夾以查看新 JVM 的項目。java -version
以查看您的 JVM 的品牌和版本號。驗證成功后,在Finder中卸載.dmg鏡像。 然后刪除您下載的 .dmg 文件。
我有同樣的問題要解決,因為我需要安裝 JDK8 才能運行 Android SDK Manager(因為它似乎不適用於 JDK9)。 但是,我告訴你我是如何在 Mac (Sierra) 上解決所有問題的。
首先,您需要使用cask和jenv 進行brew 。
brew tap caskroom/versions
brew install jenv
brew cask install java8
您想要的任何版本(如果您想安裝最新版本,則為java7
或java
,jdk9)jenv versions
列出您機器上安裝的所有版本,然后使用jenv global [JDK_NAME_OF_LIST]
激活您想要的jenv global [JDK_NAME_OF_LIST]
您可以在此 Github Gist brew-java-and-jenv.md 上、在此博客上在 Mac上安裝多個 JDK和在Jenv 網站上找到其他有用信息
如果您的機器上有多個 Java 版本,並且您想在運行時動態選擇它,即,就我而言,我有兩個版本:
ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x 3 root wheel 96B Nov 16 2014 jdk1.7.0_71.jdk/
drwxr-xr-x 3 root wheel 96B Mar 1 2015 jdk1.8.0_31.jdk/
您可以通過修改/etc/profile
內容來更改它們。 只需在文件末尾添加(或修改)以下兩行:
export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
在我的情況下,如果我想使用它應該如下所示:
爪哇7:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
爪哇 8:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
保存文件后,請運行source /etc/profile
,它應該可以工作。 以下是我相應地使用第一個和第二個選項時的結果:
爪哇7:
java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
爪哇 8:
java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
如果您的 java 文件夾位於不同的位置,則過程類似。
brew cask install caskroom/versions/java8
請運行以下命令,它將在 OS X 上安裝 Java 8:
brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8
似乎還沒有人提到 SDK man ( https://sdkman.io/ )。
SKD man 允許在 Mac 上安裝多個版本的 Java 並在這些版本之間輕松切換。 更多信息可在https://sdkman.io/usage 獲得。
例如:
$ sdk list java
================================================================================
Available Java Versions
================================================================================
* 12.ea.20-open
11.0.1-zulu
> * 11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
8.0.192-zulu
8.0.191-oracle
+ 8.0.181-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
$ sdk install java 8.0.191-oracle
$ sdk use java 8.0.191-oracle
Using java version 8.0.191-oracle in this shell.
$ java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
$ sdk use java 11.0.1-open
Using java version 11.0.1-open in this shell.
$ java -version openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
```
我有同時使用 Java 7 和 8 的應用程序,並且必須一直來回切換。
我使用 Johan 編寫的這個腳本:
http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/
您現在可以在啟動時設置它或之后調用腳本。
為 Mac 安裝 JDK。
爪哇 7
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
爪哇 8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
更新推薦!! :
使用 jenv https://www.jenv.be/和自制軟件。
然后它只是jenv global oracle6401.6.0.39
和它的集合。
在 mac High Sierra上運行這些命令
brew update
brew tap caskroom/versions
brew cask install java8
並用命令檢查
java -version
2021 年,這個對我有用
brew tap homebrew/cask-versions
brew install --cask adoptopenjdk8
使用 brew
brew install Caskroom/cask/java
最好的方法是使用 Brew 包管理器,但命令
brew cask install java8
失敗並出現錯誤:
Error: No available formula with the name "java8"
所以用
brew cask install caskroom/versions/java8
我是如何找到“caskroom/versions/java8”的:使用 brew search 命令:
brew cask search java8
如果你不使用它為個人使用,您可能需要使用的OpenJDK來避免來自甲骨文的潛在訴訟。
brew cask install adoptopenjdk8
如果您使用的是 Mac,那么 Homebrew 是安裝東西的方式。
似乎版本 8 不再是最新的,因此使用默認的brew cask install java
無法使用它。
相反,我通過執行以下操作進行管理:
brew install homebrew/cask-versions/
如果這個失敗,直接嘗試下一個:
brew install homebrew/cask-versions/adoptopenjdk8
使用brew cask list
或java -version
隨着 Homebrew 2.7.0 的發布, brew cask命令在2020年12月21 日被禁用。
使用以下命令安裝JDK
brew install --cask 采用openjdk/openjdk/adoptopenjdk8
最簡單的是從以下站點下載 dmg 文件並雙擊安裝
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
從主目錄中查找可用的 JVM
ls -al /Library/Java/JavaVirtualMachines
並使用相關版本更新 .bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
最后
source ~/.bash_profile
你可以試試這個:
$ brew search jdk
$ brew install --cask homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home
使用 Homebrew 安裝
2018 年 10 月 3 日之前 Homebrew Cask 中可用的 Java 版本確實是 Oracle JVM。 但是,現在它已更新為 OpenJDK。 請務必更新 Homebrew,然后您將看到可供安裝的最新版本。
1. 如果您還沒有安裝 Homebrew,請安裝。 確保它已更新:
brew update
2. 添加桶水龍頭,如果您還沒有(或者您在步驟 3 中不再看到舊的 Java 版本):
brew tap homebrew/cask-versions
3.對於AdoptOpenJDK版本,添加該tap:
brew tap adoptopenjdk/openjdk
這些木桶經常更改它們的 Java 版本,並且可能會有其他帶有其他 Java 版本的水龍頭。
4. 尋找可安裝的版本:
brew search java
或者對於 AdoptOpenJDK 版本:
brew search jdk
5. 檢查將要安裝的版本的詳細信息:
brew cask info java
或者對於 AdoptOpenJDK 版本:
brew cask info adoptopenjdk
6. 安裝特定版本的JDK,例如java11、adoptopenjdk8,或者只是java 或adaptopenjdk 為當前。 例如:
**brew cask install java**
**brew cask install java8**
**brew cask install java11**
您也可以使用舊版本的完全限定路徑:
brew cask install homebrew/cask-versions/java11
brew search openjdk
找到一些 openjdk 公式,2021 年,brew 提供 openjdk11 和 openjdk8 作為選項。
Eclipse 鐵木林是采用openjdk的官方繼承者。 因此,截至 2022 年 5 月,我將使用以下內容
brew install --cask temurin8
安裝完成后,JDK 8 安裝在/Library/Java/JavaVirtualMachines/temurin-8.jdk
最簡單的方法
1) brew cask install java
2) java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
PS - Cask 是 Homebrew 的擴展,旨在管理大型 Mac 二進制文件和圖形應用程序,但使用 Homebrew 界面。 另請參閱 Apple StackExchange 上的此答案。
嘗試 :
brew cask install java 8
它將給出以下結果
8tracksradiohelper adoptopenjdk8 amitv87-pip
corretto8 icons8 vmware-fusion8
x48 zulu8
接下來輸入:
brew cask install adoptopenjdk8
---- java 8 將安裝在 Mac 上。
截至 2021 年
brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
我建議使用非常容易更改Version(臨時和永久)的SDK的人,並且它還提供其他SDK。 我使用SDK的人已經一年多了。
MacOS Big Sur 2021 Java 8安裝指南:
享受=)
最簡單的答案是 Zulu java prebuilts。 他們甚至附帶一個安裝程序,可以為您完成所有工作。
https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
從此處更新 HomeBrew - 如何在 Mac 上安裝 Java 8
然后從這里安裝 Zulu M1 JDK。 https://cdn.azul.com/zulu/bin/zulu8.66.0.15-ca-jdk8.0.352-macosx_aarch64.dmg
下載后在您的路徑中設置 JDK 主頁,如下所示:
export JAVA_HOME='/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home'
export PATH=$JAVA_HOME/bin:$PATH
截至2023
, brew install --cask zulu8
在Apple
芯片上對我不起作用。 brew install openjdk@8
也沒有。 唯一對我有用的解決方案是brew install --cask adoptopenjdk8
然后當然vim ~/.zshrc
.zshrc 並在該文件中export JAVAC_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
。
截至2020年5月3日,本站提供jre8u251下載鏈接: https ://java.com/en/download/mac_download.jsp
以下步驟對我有用。
1)卸載所有jdks
在終端窗口中復制並粘貼以下命令:
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
2) 安裝蘋果 jdk。
https://support.apple.com/kb/DL1572?locale=en_US
3)從Oracle下載最新的JDK並安裝它,對我來說是JDK 1.82
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
這就是它的魅力所在。
我也有同樣的問題。 但是經過一番嘗試之后,我得以解決此問題。
嘗試通過sudo rm刪除1.6 sdk,然后重新啟動Mac。
再次下載.dmg文件。 您下載的.dmg安裝程序可能已損壞。 重新安裝。
安裝后運行以下命令。 它提供了jdk 8的路徑。/ usr / libexec / java_home -v 1.8
您也可以運行並查看jdk 8文件夾。 文件可能被隱藏。 ls -al /圖書館/ Java / JavaVirtualMachines /
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.