跟光磊學Java-macOS版Java8開發環境搭建(基於Intel x86 64-bit)

2022-12-29 09:01:19

 

 

 

 

 

 

 

日常辦公和軟體開發除了可以使用Windows系統以外,還可以使用macOS系統,至於具體使用什麼系統取決於你入職公司之後公司給你發的什麼電腦,如果是MacBookPro那麼就使用macOS開發專案,因此現在我們開始在macOS系統下搭建Java8的開發環境,如果你的Mac電腦使用的Intel CPU,那麼按照如下方法下載、安裝和設定Java8的開發環境

1. Mac平臺的CPU架構

早期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架構
Apple

在macOS Montery 點選左上角的蘋果選單,然後選擇關於本機
在彈出的概覽視窗中看到處理器包含Intel,例如2.3 GHz 八核 Intel Core i9 就是屬於Intel x86架構
intel

正是有這兩種不同的CPU架構,直接導致基於Intel x86架構開發的程式(例如金山檔案、恆星播放器、cleanmymac)是無法直接執行在基於ARM架構的CPU(例如M1,M1 Pro,M1 Max,M1 Ultra ,M2)上

2. Rosetta

2.1 什麼時候需要Rosetta

蘋果公司提供了一個翻譯工具-Rosetta 2,通過 Rosetta 2,搭載 Apple 晶片的 Mac 可以使用專為配備 Intel 處理器的 Mac 構建的 App,這樣也就意味著以前為Intel CPU開發的程式可以通過Rosetta 2 執行在蘋果晶片的Mac電腦上,例如金山檔案、恆星播放器等等。

2.2 如何安裝Rosetta

Rosetta 2 僅適用於搭載 Apple 晶片的 Mac 電腦。

首次開啟需要 Rosetta 的 App 時,系統會要求您安裝 Rosetta。點按「安裝」,然後輸入您的使用者名稱和密碼以允許繼續安裝。

 

什麼時候需要Rosetta
什麼時候需要Rosetta

 

如果您點按「以後」,則下次開啟需要 Rosetta 的 App 時,系統會再次要求您安裝 Rosetta。

如果 Rosetta 已經安裝,則系統不會再次要求您安裝,也就是僅僅需要安裝一次。

2.3 如何使用 Rosetta

您不需要開啟 Rosetta 或與這個 App 互動。每當您使用專為搭載 Intel 處理器的 Mac 電腦構建的 App 時,Rosetta 都會在後臺自動執行。Rosetta 會轉換相應 App,使它可以與 Apple 晶片搭配使用。
對於需要 Rosetta 的 App,在大多數情況下,您不會察覺它的效能有任何不同。不過,您應該聯絡 App 開發者,以詢問相應 App 有沒有一個版本能夠以原生方式來充分利用 Apple 晶片的功能和效能。

2.4 哪些 App 需要 Rosetta?

要識別需要 Rosetta 或者可以使用 Rosetta 的 App,請按照以下步驟操作:

在「訪達」中選擇一個 App。
從選單欄的「檔案」選單中,選取「顯示簡介」。

檢視標有「種類」字樣的資訊:
應用程式 (Intel) 表示 App 僅支援 Intel 處理器,並且需要 Rosetta 才能在搭載 Apple 晶片的 Mac 上執行。例如金山檔案、恆星播放器
金山文件
恆星播放器
應用程式(通用)表示 App 既支援 Apple 晶片也支援 Intel 處理器,並且在預設情況下使用 Apple 晶片。通用 App 不需要 Rosetta。
Safari
對於標有「應用程式(通用)」的 App,「簡介」視窗包含「使用 Rosetta 開啟」這項設定。通過這項設定,網頁瀏覽器等通用 App 可以使用還沒有更新為支援 Apple 晶片的外掛、擴充套件或其他附加元件。如果某個通用 App 無法識別您為這個 App 安裝的附加元件,您可以退出這個 App,選擇這項設定,然後再試一次。
draw.io
應用程式(Apple晶片) 表示App是專門針對Apple晶片開發的,例如例如M1,M1 Pro,M1 Max,M1 Ultra ,M2)等等

3. 基於Intel x86 64-bit macOS版Java8下載

  1. 存取Java官網,其存取地址是https://www.oracle.com/java/
    Java官網
  2. 點選右上角的Download Java,跳轉到Java的下載頁面
    Download Java
    Java的下載地址 https://www.oracle.com/java/technologies/downloads/
    Java的下載頁面
    目前Oracle官方提供的最新Java版本\JDK版本是Java19和Java17,但是最新的LTS版本是Java17
    這次我們要下載的是Java8,所以往下捲動滑鼠到Java8的下載
    Java8的下載
    目前Java8支援4個作業系統
  • Linux
  • macOS
  • Solaris
  • Windows

 

Java8支援四個作業系統
Java8支援四個作業系統

 

  1. 選擇macOS版x64 DMG Installer
    macOS版x64 DMG Installer
    x64 DMG Installer 表示Intel x86 64位元安裝程式,如果你的Mac電腦使用的Intel CPU 那麼就下載這個

4.下載jdk-8u351-macosx-x64.dmg
首先點選jdk-8u351-macosx-x64.dmg,然後勾選同意許可協定,最後點選Download jdk-8u351-macosx-x64.dmg
下載jdk-8u351-macosx-x64.dmg

  1. 註冊\登入Oracle賬戶
    如果沒有Oracle賬賬戶,大家可以在註冊頁面 https://profile.oracle.com/myprofile/account/create-account.jspx 填寫相應的資訊註冊賬戶
    註冊賬戶
    賬戶建立成功以後,在登入頁面填寫賬戶資訊登入Oracle賬戶
    登入賬戶
    登入成功之後瀏覽器會自動開始下載
    瀏覽器自動下載Java8

  2. 下載成功
    然後在訪達的下載目錄就可以看到jdk-8u351-macosx-x64.dmg檔案
    下載成功

4. 基於Intel x86 64-bit macOS版Java8安裝

  1. 雙擊jdk-8u351-macosx-x64.dmg檔案
    雙擊jdk-8u351-macosx-x64.dmg檔案

  2. 雙擊JDK 8 Update 351.pkg
    雙擊JDK 8 Update 351.pkg

  3. 點選繼續
    點選繼續

  4. 點選安裝
    點選安裝

安裝之前安裝器會提示 使用觸控ID或輸入密碼以執行此次操作
安裝器提示

  1. 安裝中

 

安裝中
安裝中

正在註冊已經更新元件

 

  1. 安裝成功
    點選後續步驟跳轉到Java8的官方檔案 https://docs.oracle.com/javase/8/
    點選關閉 完成安裝
    Java8官方文件

 

安裝成功
安裝成功

然後會提示 你要將JDK 8 Update 351 安裝器移動到廢紙簍嗎?
這裡建議保留,因為後期可能會因為某些原因需要重新安裝
保留

 

  1. 推出桌面的JDK 8 Update 351
    選中JDK 8 Update 351 ,然後右鍵推出即可,當然也可以使用快捷鍵Command+E推出
    推出桌面的JDK 8 Update 351

5. 基於Intel x86 64-bit macOS版Java8設定

5.1 基於Intel x86 64-bit macOS版Java8設定說明

當基於Intel x86架構 macOS版Java8安裝完成以後,你會發現即使沒有設定JAVA_HOME環境變數,在終端上執行mvn --version時也不會像Windows那樣提示需要設定JAVA_HOME
mvn --version

而且即使沒有設定PATH環境變數,在終端的任意路徑下也可以執行javac -version和java -version,意味著可以在終端的任意路徑使用javac和java
javac和java

這樣是不是就意味著不用設定Java8的JAVA_HOME和PATH環境變數呢?

其實不然,因為後期我們會使用多個不同版本的Java,例如在開發Java專案時使用的Java8,而學習Java語言時為了使用高版本的新特性可能會使用Java11甚至Java17,這裡就會有在終端上切換Java版本的需求。因此我們依然要設定Java8的JAVA_HOME和PATH環境變數

不過和Windows上Java8的設定方式不同,macOS版Java8的設定方式需要通過在終端上執行一些命令進行,如果你熟悉Linux命令那麼上手會比較容易

5.2 基於Intel x86 64-bit macOS版Java8設定JAVA_HOME環境變數

JAVA_HOME其實指的就是Java的家目錄,預設情況下Java8家目錄的路徑是/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
Java8的安裝目錄

設定JAVA_HOME環境變數的目的就是為了給Java8的PATH環境變數使用的

  1. 啟動終端
    Mac內建終端程式,你可以在啟動臺的其他中找到它
    啟動臺的其他

 

內建的終端
內建的終端

 

不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格開啟聚焦搜尋,然後搜尋iTerm回車後開啟
聚焦搜尋
iTerm

  1. 檢視系統所使用的Shell型別
    不同型別的Shell所使用的組態檔不同,例如zsh使用的.zshrc,而bash使用的.bash_profile
    使用echo $SHELL 命令可以檢視當前使用的Shell型別,這裡預設使用的是zsh
    檢視Shell類型

    如果想要使用bash,那麼可以使用chsh -s /bin/bash命令切換到bash,不過切換以後需要重新開啟新的視窗,然後使用echo $SHELL檢視Shell型別
    切換shell

  2. 建立組態檔
    如果你是使用的bash ,那麼在使用者的家目錄下使用touch .bash_profile 建立.bash_profile檔案
    如果你是使用的zsh,那麼在使用者的家目錄下使用touch .zshrc建立.zshrc檔案
    Mac的家目錄就是/Users/liuguanglei,其中liuguanglei表示使用者名稱,每個系統的使用者名稱可能不相同。開啟終端以後預設的路徑就是在家目錄下

我這裡使用預設的shell是zsh,因此建立.zshrc檔案
創建配置檔案

檔案建立成功後可以使用 ls -al檢視檔案
檢視檔案

  1. 在組態檔中新增Java8的JAVA_HOME環境變數

首先使用vim .zshrc 開啟檔案
開啟檔案
此時處於命令模式,無法新增內容
命令模式
需要按i鍵進入編輯模式
編輯模式
然後新增如下設定

# 設定Java8的JAVA_HOME
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home

設定完成以後按esc退出編輯模式
配置完成以後按esc退出編輯模式

退出了編輯模式後
退出了編輯模式

然後按:wq 儲存並退vim編輯器
然後按:wq 儲存並退vim編輯器

  1. 重新載入組態檔
    在終端上輸入source .zshrc讓新增的設定生效
    source .zshrc

  2. 驗證設定
    在終端上輸入echo $JAVA_HOME 命令看能否輸出Java8家目錄的路徑/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
    驗證配置檔案

5.3 基於Intel x86 64-bit macOS版Java8設定PATH環境變數

5.3.1 PATH環境變數的介紹

PATH環境變數的本質就是一系列的路徑,例如/bin,/usr/bin,/usr/local/bin,多個路徑之間使用冒號(:)隔開,Mac下可以在終端上使用echo $PATH命令檢視當前系統的PATH環境變數
檢視當前系統的PATH環境變數
PATH環境變數的作用就是在終端上執行命令時,系統會從PATH環境變數的路徑查詢命令對應的可執行程式,然後執行該程式
例如date 可以檢視系統日期,而 where date 可以檢視到date命令的路徑,正因為/bin在PATH環境變數中,因此在終端輸入date實際是執行的是/bin目錄下的date程式
檢視日期和date命令的路徑
如果輸入一個不存在的命令,那麼系統會提示command not found
command not found

5.3.2 基於Intel x86 64-bit macOS版Java8設定PATH環境變數

  1. 啟動終端
    Mac內建終端程式,你可以在啟動臺的其他中找到它
    啟動臺的其他

 

內建的終端
內建的終端

 

不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格開啟聚焦搜尋,然後搜尋iTerm回車後開啟
聚焦搜尋
iTerm

  1. 開啟組態檔
    之前在設定JAVA_HOME環境變數建立過.zshrc檔案,因此使用vim .zshrc命令開啟即可
    開啟檔案
    開啟檔案後可以檢視到Java8的JAVA_HOME環境變數設定
    檢視檔案

  2. 編輯組態檔
    vim開啟檔案後只能檢視檔案內容而不能編輯,因此按i鍵進入編輯模式
    編輯模式

然後在檔案末尾新增如下內容

#設定Java8的PATH環境變數
export PATH=$PATH:$JAVA_HOME/bin

 

配置Java8的PATH環境變數
設定Java8的PATH環境變數

 

  1. 儲存設定並退出vim編輯器
    檔案編輯完成後按esc退出編輯模式
    退出編輯模式

然後按:wq儲存並退出vim編輯器
儲存並退出vim編輯器

  1. 重新載入組態檔
    在終端上輸入source .zshrc讓新增的設定生效
    重新載入配置檔案

  2. 驗證設定
    在終端上輸入echo $PATH命令檢視系統PATH環境變數,確認是否已經新增Java8的PATH環境變數
    驗證配置

6. 基於Intel x86 64-bit macOS版Java8解除安裝

未來的某個時間可能你不再需要使用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

 

刪除java8的三個目錄
刪除java8的三個目錄

 

然後刪除組態檔,例如.zshrc,此時使用rm .zshrc命令刪除即可
刪除.zshrc檔案

刪除.zshrc檔案後重新開個終端視窗來驗證JAVA_HOME和PATH環境變數是否已經刪除
驗證JAVA_HOME和PATH環境變數

最後在終端上輸入javac -version 和java -version,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示解除安裝成功
驗證是否刪除成功