日常辦公和軟件開發除了可以使用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架構
在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)上
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 的 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。
對于標有“應用程序(通用)”的 App,“簡介”窗口包含“使用 Rosetta 打開”這項設置。通過這項設置,網頁瀏覽器等通用 App 可以使用還沒有更新為支持 Apple 芯片的插件、擴展或其他附加組件。如果某個通用 App 無法識別您為這個 App 安裝的附加組件,您可以退出這個 App,選擇這項設置,然后再試一次。
應用程序(Apple芯片) 表示App是專門針對Apple芯片開發的,例如例如M1,M1 Pro,M1 Max,M1 Ultra ,M2)等等
3. 基于Intel x86 64-bit macOS版Java8下載
- 訪問Java官網,其訪問地址是https://www.Oracle.com/java/
2.點擊右上角的Download Java,跳轉到Java的下載頁面
Java的下載地址 https://www.oracle.com/java/technologies/downloads/
目前Oracle官方提供的最新Java版本JDK版本是Java19和Java17,但是最新的LTS版本是Java17
這次我們要下載的是Java8,所以往下滾動鼠標到Java8的下載
目前Java8支持4個操作系統
- linux
- macOS
- Solaris
- Windows
Java8支持四個操作系統
3.選擇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
5.注冊登錄Oracle賬戶
如果沒有Oracle賬賬戶,大家可以在注冊頁面 https://profile.oracle.com/myprofile/account/create-account.jspx 填寫相應的信息注冊賬戶
賬戶創建成功以后,在登錄頁面填寫賬戶信息登錄Oracle賬戶
登錄成功之后瀏覽器會自動開始下載
6.下載成功
然后在訪達的下載目錄就可以看到jdk-8u351-macosx-x64.dmg文件
4. 基于Intel x86 64-bit macOS版Java8安裝
- 雙擊jdk-8u351-macosx-x64.dmg文件
2.雙擊JDK 8 Update 351.pkg
3.點擊繼續
4.點擊安裝
安裝之前安裝器會提示 使用觸控ID或輸入密碼以運行此次操作
5.安裝中
安裝中
6.安裝成功
點擊后續步驟跳轉到Java8的官方文檔 https://docs.oracle.com/javase/8/
點擊關閉 完成安裝
然后會提示 你要將JDK 8 Update 351 安裝器移動到廢紙簍嗎?
這里建議保留,因為后期可能會因為某些原因需要重新安裝
7.推出桌面的JDK 8 Update 351
選中JDK 8 Update 351 ,然后右鍵推出即可,當然也可以使用快捷鍵Command+E推出
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
而且即使沒有配置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命令那么上手會比較容易。
5.2 基于Intel x86 64-bit macOS版Java8配置JAVA_HOME環境變量
JAVA_HOME其實指的就是Java的安裝目錄,默認情況下Java8的安裝目錄是/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
配置JAVA_HOME環境變量的目的就是為了給Java8的PATH環境變量使用的
- 啟動終端
Mac內置終端程序,你可以在啟動臺的其他中找到它
內置的終端
不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格打開聚焦搜索,然后搜索iTerm回車后打開
2.查看系統所使用的Shell類型
不同類型的Shell所使用的配置文件不同,例如zsh使用的.zshrc,而bash使用的.bash_profile
使用echo $SHELL 命令可以查看當前使用的Shell類型,這里默認使用的是zsh
如果想要使用bash,那么可以使用chsh -s /bin/bash命令切換到bash,不過切換以后需要重新開啟新的窗口,然后使用echo $SHELL查看Shell類型
3.創建配置文件
如果你是使用的bash ,那么在用戶的家目錄下使用touch .bash_profile 創建.bash_profile文件
如果你是使用的zsh,那么在用戶的家目錄下使用touch .zshrc創建.zshrc文件
Mac的家目錄就是/Users/liuguanglei,其中liuguanglei表示用戶名,每個系統的用戶名可能不相同。打開終端以后默認的路徑就是在家目錄下
我這里使用默認的shell是zsh,因此創建.zshrc文件
文件創建成功后可以使用 ls -al查看文件
4.在配置文件中添加Java8的JAVA_HOME環境變量
首先使用vim .zshrc 打開文件
此時處于命令模式,無法添加內容
需要按i鍵進入編輯模式
然后添加如下配置
# 配置Java的安裝路徑 export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home # 設置默認JAVA_HOME export JAVA_HOME=$JAVA_8_HOME # 配置alias命令通過別名動態切換JDK版本 在終端執行java8等價于執行export JAVA_HOME=$JAVA_8_HOME alias java8="export JAVA_HOME=$JAVA_8_HOME"
添加完成以后按esc退出編輯模式
然后按:wq 保存并退vim編輯器
5.重新加載配置文件
在終端上輸入source .zshrc讓添加的配置生效
6.驗證配置
在終端上輸入echo $JAVA_HOME 命令看能否輸出Java8的安裝路徑
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環境變量的路徑查找命令對應的可執行程序,然后執行該程序
例如date 可以查看系統日期,而 where date 可以查看到date命令的路徑,正因為/bin在PATH環境變量中,因此在終端輸入date實際是運行的是/bin目錄下的date程序
如果輸入一個不存在的命令,那么系統會提示command not found
5.3.2 基于Intel x86 64-bit macOS版Java8配置PATH環境變量
- 啟動終端
Mac內置終端程序,你可以在啟動臺的其他中找到它
內置的終端
不過我使用的是第三方終端iTerm,需要自己手動安裝,可以使用Command+空格打開聚焦搜索,然后搜索iTerm回車后打開
2.打開配置文件
之前在配置JAVA_HOME環境變量創建過.zshrc文件,因此使用vim .zshrc命令打開即可
打開文件后可以查看到Java8的JAVA_HOME環境變量配置
3.編輯配置文件
vim打開文件后只能查看文件內容而不能編輯,因此按i鍵進入編輯模式
然后在文件末尾添加如下內容
#配置Java8的PATH環境變量 export PATH=$PATH:$JAVA_HOME/bin
4.保存配置并退出vim編輯器
文件編輯完成后按esc退出編輯模式
然后按:wq保存并退出vim編輯器
5.重新加載配置文件
在終端上輸入source .zshrc讓添加的配置生效
6.驗證配置
在終端上輸入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的三個目錄
然后刪除配置文件,例如.zshrc,此時使用rm .zshrc命令刪除即可
刪除.zshrc文件后重新開個終端窗口來驗證JAVA_HOME和PATH環境變量是否已經刪除
最后在終端上輸入javac -version 和java -version,如果提示The operation couldn’t be completed. Unable to locate a Java Runtime. 表示刪除成功