日常辦公和軟體開發除了可以使用Windows系統以外,還可以使用macOS系統,至於具體使用什麼系統取決於你入職公司之後公司給你發的什麼電腦,如果是MacBookPro那麼就使用macOS開發專案,因此現在我們開始在macOS系統下搭建Java8的開發環境,如果你的Mac電腦使用的Intel CPU,那麼按照如下方法下載、安裝和設定Java8的開發環境。
早期Mac電腦都是使用Intel 的CPU,在2020年以後蘋果公司在ARM架構的基礎上自研CPU,例如M1,M1 Pro,M1 Ultra,M2等等,因此蘋果公司的Mac電腦有 Intel x86架構和ARM 架構兩種不同的CPU架構
那麼問題來了,我怎麼知道我使用的Mac電腦CPU架構呢?
在macOS Ventura 點選左上角的蘋果選單,然後選擇關於本機
在彈出的視窗中看到晶片是Apple開頭的 ,例如Apple M1 Pro,Apple M1 Max,Apple M1 Ultra,Apple M2,等等就是屬於ARM架構
在macOS Montery 點選左上角的蘋果選單,然後選擇關於本機
在彈出的概覽視窗中看到處理器包含Intel,例如2.3 GHz 八核 Intel Core i9 就是屬於Intel x86架構
正是有這兩種不同的CPU架構,直接導致基於Intel x86架構開發的程式(例如金山檔案、恆星播放器、cleanmymac)是無法直接執行在基於ARM架構的CPU(例如M1,M1 Pro,M1 Max,M1 Ultra ,M2)上
蘋果公司提供了一個翻譯工具-Rosetta 2,通過 Rosetta 2,搭載 Apple 晶片的 Mac 可以使用專為配備 Intel 處理器的 Mac 構建的 App,這樣也就意味著以前為Intel CPU開發的程式可以通過Rosetta 2 執行在蘋果晶片的Mac電腦上,例如金山檔案、恆星播放器等等。
Rosetta 2 僅適用於搭載 Apple 晶片的 Mac 電腦。
首次開啟需要 Rosetta 的 App 時,系統會要求您安裝 Rosetta。點按「安裝」,然後輸入您的使用者名稱和密碼以允許繼續安裝。
如果您點按「以後」,則下次開啟需要 Rosetta 的 App 時,系統會再次要求您安裝 Rosetta。
如果 Rosetta 已經安裝,則系統不會再次要求您安裝,也就是僅僅需要安裝一次。
您不需要開啟 Rosetta 或與這個 App 互動。每當您使用專為搭載 Intel 處理器的 Mac 電腦構建的 App 時,Rosetta 都會在後臺自動執行。Rosetta 會轉換相應 App,使它可以與 Apple 晶片搭配使用。
對於需要 Rosetta 的 App,在大多數情況下,您不會察覺它的效能有任何不同。不過,您應該聯絡 App 開發者,以詢問相應 App 有沒有一個版本能夠以原生方式來充分利用 Apple 晶片的功能和效能。
要識別需要 Rosetta 或者可以使用 Rosetta 的 App,請按照以下步驟操作:
在「訪達」中選擇一個 App。
從選單欄的「檔案」選單中,選取「顯示簡介」。
檢視標有「種類」字樣的資訊:
應用程式 (Intel) 表示 App 僅支援 Intel 處理器,並且需要 Rosetta 才能在搭載 Apple 晶片的 Mac 上執行。例如金山檔案、恆星播放器
應用程式(通用)表示 App 既支援 Apple 晶片也支援 Intel 處理器,並且在預設情況下使用 Apple 晶片。通用 App 不需要 Rosetta。
對於標有「應用程式(通用)」的 App,「簡介」視窗包含「使用 Rosetta 開啟」這項設定。通過這項設定,網頁瀏覽器等通用 App 可以使用還沒有更新為支援 Apple 晶片的外掛、擴充套件或其他附加元件。如果某個通用 App 無法識別您為這個 App 安裝的附加元件,您可以退出這個 App,選擇這項設定,然後再試一次。
應用程式(Apple晶片) 表示App是專門針對Apple晶片開發的,例如例如M1,M1 Pro,M1 Max,M1 Ultra ,M2)等等
4.下載jdk-8u351-macosx-x64.dmg
首先點選jdk-8u351-macosx-x64.dmg,然後勾選同意許可協定,最後點選Download jdk-8u351-macosx-x64.dmg
註冊\登入Oracle賬戶
如果沒有Oracle賬賬戶,大家可以在註冊頁面 https://profile.oracle.com/myprofile/account/create-account.jspx 填寫相應的資訊註冊賬戶
賬戶建立成功以後,在登入頁面填寫賬戶資訊登入Oracle賬戶
登入成功之後瀏覽器會自動開始下載
下載成功
然後在訪達的下載目錄就可以看到jdk-8u351-macosx-x64.dmg檔案
雙擊jdk-8u351-macosx-x64.dmg檔案
雙擊JDK 8 Update 351.pkg
點選繼續
點選安裝
安裝之前安裝器會提示 使用觸控ID或輸入密碼以執行此次操作
當基於Intel x86架構 macOS版Java8安裝完成以後,你會發現即使沒有設定JAVA_HOME環境變數,在終端上執行mvn --version時也不會像Windows那樣提示需要設定JAVA_HOME
而且即使沒有設定PATH環境變數,在終端的任意路徑下也可以執行javac -version和java -version,意味著可以在終端的任意路徑使用javac和java
這樣是不是就意味著不用設定Java8的JAVA_HOME和PATH環境變數呢?
其實不然,因為後期我們會使用多個不同版本的Java,例如在開發Java專案時使用的Java8,而學習Java語言時為了使用高版本的新特性可能會使用Java11甚至Java17,這裡就會有在終端上切換Java版本的需求。因此我們依然要設定Java8的JAVA_HOME和PATH環境變數
不過和Windows上Java8的設定方式不同,macOS版Java8的設定方式需要通過在終端上執行一些命令進行,如果你熟悉Linux命令那麼上手會比較容易。
JAVA_HOME其實指的就是Java的家目錄,預設情況下Java8家目錄的路徑是/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
設定JAVA_HOME環境變數的目的就是為了給Java8的PATH環境變數使用的
不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格開啟聚焦搜尋,然後搜尋iTerm回車後開啟
檢視系統所使用的Shell型別
不同型別的Shell所使用的組態檔不同,例如zsh使用的.zshrc,而bash使用的.bash_profile
使用echo $SHELL 命令可以檢視當前使用的Shell型別,這裡預設使用的是zsh
如果想要使用bash,那麼可以使用chsh -s /bin/bash命令切換到bash,不過切換以後需要重新開啟新的視窗,然後使用echo $SHELL檢視Shell型別
建立組態檔
如果你是使用的bash ,那麼在使用者的家目錄下使用touch .bash_profile 建立.bash_profile檔案
如果你是使用的zsh,那麼在使用者的家目錄下使用touch .zshrc建立.zshrc檔案
Mac的家目錄就是/Users/liuguanglei,其中liuguanglei表示使用者名稱,每個系統的使用者名稱可能不相同。開啟終端以後預設的路徑就是在家目錄下
我這裡使用預設的shell是zsh,因此建立.zshrc檔案
檔案建立成功後可以使用 ls -al檢視檔案
首先使用vim .zshrc 開啟檔案
此時處於命令模式,無法新增內容
需要按i鍵進入編輯模式
然後新增如下設定
# 設定Java8的JAVA_HOME
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
設定完成以後按esc退出編輯模式
退出了編輯模式後
然後按:wq 儲存並退vim編輯器
重新載入組態檔
在終端上輸入source .zshrc讓新增的設定生效
驗證設定
在終端上輸入echo $JAVA_HOME 命令看能否輸出Java8家目錄的路徑/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
PATH環境變數的本質就是一系列的路徑,例如/bin,/usr/bin,/usr/local/bin,多個路徑之間使用冒號(:)隔開,Mac下可以在終端上使用echo $PATH命令檢視當前系統的PATH環境變數
PATH環境變數的作用就是在終端上執行命令時,系統會從PATH環境變數的路徑查詢命令對應的可執行程式,然後執行該程式
例如date 可以檢視系統日期,而 where date 可以檢視到date命令的路徑,正因為/bin在PATH環境變數中,因此在終端輸入date實際是執行的是/bin目錄下的date程式
如果輸入一個不存在的命令,那麼系統會提示command not found
不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格開啟聚焦搜尋,然後搜尋iTerm回車後開啟
開啟組態檔
之前在設定JAVA_HOME環境變數建立過.zshrc檔案,因此使用vim .zshrc命令開啟即可
開啟檔案後可以檢視到Java8的JAVA_HOME環境變數設定
編輯組態檔
vim開啟檔案後只能檢視檔案內容而不能編輯,因此按i鍵進入編輯模式
然後在檔案末尾新增如下內容
#設定Java8的PATH環境變數
export PATH=$PATH:$JAVA_HOME/bin
然後按:wq儲存並退出vim編輯器
重新載入組態檔
在終端上輸入source .zshrc讓新增的設定生效
驗證設定
在終端上輸入echo $PATH命令檢視系統PATH環境變數,確認是否已經新增Java8的PATH環境變數
未來的某個時間可能你不再需要使用Java8時,就可以將其解除安裝,解除安裝Java8時需要刪除三個目錄和組態檔(例如.zshrc)
/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk # Java8的安裝目錄
/Library/Application\ Support/Oracle/Java/
/Library/PreferencePanes/JavaControlPanel.prefPane/ # Java8的控制面板
刪除三個目錄時需要使用sudo rm -rf 命令來完成,首次執行sudo rm -rf前需要輸入使用者的開機密碼
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk
sudo rm -rf /Library/Application\ Support/Oracle/Java
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
然後刪除組態檔,例如.zshrc,此時使用rm .zshrc命令刪除即可
刪除.zshrc檔案後重新開個終端視窗來驗證JAVA_HOME和PATH環境變數是否已經刪除
最後在終端上輸入javac -version 和java -version,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示解除安裝成功