下載JDK的 MacOS 版本常常只有提供 dmg 的安裝版,並未提供可以直接解開的 binary zip,但對於 java 開發者來說,jdk時常要裝好幾個版本,如果只有安裝包真的很麻煩。
找了一會兒的確有方法可以從 dmg 安裝包萃取出來完整的 jdk 目錄,寫下來以後省得再花時間找。
-
mount JDK 的 dmg 安裝包
從Finder中在dmg檔案上按右鍵選 DiskImageMounter 掛載 dmg 檔,預設會掛載在 /Volumes/JDK <大版本> Update <小版本>
以jdk_8u231版本來說,會掛載在 「/Volumes/JDK 8 Update 231」下
也可以從teminal直接下指令掛載
hdiutil mount jdk-8u231-macosx-x64.dmg
一樣會掛載在 「/Volumes/JDK 8 Update 231」下
-
解開 pkg安裝檔
接著用teminal切換到「/Volumes/JDK 8 Update 231」目錄下,裡面有個 pkg 安裝包,可以下指令解開 pkg檔案
pkgutil --expand <pkg安裝包檔名> <解開pkg的目的地路徑>
接著pkg解開的目錄下,應該有個jdkXXXXXX.pkg的目錄,再切換到這個目錄下(以 jdk8u231 來說是 jdk180231.pkg )
裡面有個檔名為 Payload 的檔案,接著我們要對他進行操作解開
針對 Payload 下指令
cat Payload| gunzip -dc | cpio -i
同目錄下會產生一個 Contents 目錄,Contents 目錄裡則有個 Home 目錄,這個 Home 目錄就是 JDK Binary 的完整目錄
-
將 Home 目錄更名,然後搬到自己喜歡的目錄下
進入Home目錄瞧瞧,果然是 JDK 的完整目錄,那就把 Home 目錄更名,搬到自己想要放的路徑吧