軟體開發與時俱進、推陳出新, 為了確保自己寫好的程式有更好的相容性,常會安裝多個版本的 JDK 來測試。雖然 IntelliJ IDEA 可以很方便的下載、管理 JDK,但有些情境底下沒辦法這樣做,比方說在沒有 GUI 的機器上,你無法安裝 IntelliJ IDEA 後再安裝多版本 JDK。在這篇文章裡,就要教大家在不依賴 IntelliJ IDEA 的情境下,可以怎麼安裝多個版本的 JDK。
用 SDKMAN 裝 (Unix-like)
假如你習慣使用 Unix-like 的作業系統,那我個人會推薦使用 SDKMAN 這套 SDK 管理工具。SDKMAN 不僅可以管理多個 JDK,其他 JVM 相容語言的 SDK 及自動化工具也都可以一併管理,而且本身採用 Bash 實作,不需依賴其他環境即可執行,非常方便。
安裝 SDKMAN 的方式非常簡單,首先開啟 Terminal,輸入官網的安裝指令如下:
$ curl -s "https://get.sdkman.io" | bash
依照畫面上的步驟完成安裝,可以重開 Terminal 或是用以下指令重新載入環境一次:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
接著可以輸入 $ sdk version 取得 SDKMAN 的版本號來驗證安裝是否成功,你應該可以看到類似 sdkman 5.9.0+555 這樣的輸出結果。確認安裝完成後,先取得可以安裝的 JDK 清單:
$ sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 14.0.2.j9 | adpt | | 14.0.2.j9-adpt
| | 14.0.2.hs | adpt | | 14.0.2.hs-adpt
| | 13.0.2.j9 | adpt | | 13.0.2.j9-adpt
| | 12.0.2.j9 | adpt | | 12.0.2.j9-adpt
| | 11.0.8.j9 | adpt | | 11.0.8.j9-adpt
| | 8.0.265.j9 | adpt | | 8.0.265.j9-adpt
================================================================================
這個表格很長,這邊只截取部份做範例。在選擇要安裝的 JDK 版本時,請看 Vendor 及 Version 這兩個欄位,確認自己想要使用的版本後,對照出該 JDK 的 Identifier。比方說,想要安裝 AdoptOpenJDK 的 14.0.2.j9 版本,則 Identifier 就是 14.0.2.j9-adpt 。接著就可以用安裝指令安裝:
$ sdk install java 14.0.2.j9-adpt
我們安裝多個 JDK 後,可以根據需求來切換當前環境使用的 JDK,或是直接指定預設的 JDK 版本。切換後也可以用指令查詢目前載入的版本是哪一個:
# 切換當前環境使用的 JDK
$ sdk use java 14.0.2.j9-adpt
# 指定預設的 JDK 版本
$ sdk default java 14.0.2.j9-adpt
# 取得目前的 JDK 版本
$ sdk current java
以上就是使用 SDKMAN 安裝多版本 JDK 的基本流程。除了這些指令外,解除安裝、更新清單、升級 SDK 版本、升級 SDKMAN 的指令也可以順道記一下:
# 解除安裝
$ sdk uninstall java 14.0.2.j9-adpt
# 升級可安裝的 SDK 清單
$ sdk update
# 升級所有已安裝的 SDK 版本
$ sdk upgrade
# 更新 SDKMAN 本身
$ sdk selfupdate
學會使用 SDKMAN 後,對於管理 SDK 會很有幫助。若想瀏覽 SDKMAN 可以安裝的 SDK 清單,可以到官網 JDKs 清單頁 或 SDKs 清單頁 查詢。而更詳細的 SDKMAN 指令教學,可以參考 官網指令一覽 。
用 Scoop 裝 (Windows)
因為 SDKMAN 是用 Bash 設計的,若你的工作機是 Windows,硬要在上面使用不是這麼直覺和方便,所以我會改推 Scoop。Scoop 定位成在 Windows 平台上的指令安裝工具,只需要幾行指令就可以輕鬆安裝各種軟體,接下來就示範如何在 Windows 10 平台上用 Scoop 安裝 JDK。
在安裝 Scoop 之前,我會推薦先安裝 Windows Terminal ,並確認已有 PowerShell 5 及 .NET Framework 4.5 以上的版本。接著,輸入官網的安裝指令如下:
$ Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 假如遇到權限設定錯誤,請輸入以下指令
$ Set-ExecutionPolicy RemoteSigned -scope CurrentUser
完成安裝後重開 Terminal 接著輸入 $ scoop status 確認安裝是否成功,你應該可以看到類似 Everything is ok! 的輸出結果。接著將 Java 相關的儲存庫加入 Scoop 內:
$ scoop bucket add java
接著依照需求安裝不同版本的 JDK:
# 搜尋可安裝的 JDK
$ scoop search jdk
# 安裝各種版本的 JDK
$ scoop install oraclejdk
$ scoop install zulu6
$ scoop install openjdk10
安裝好 JDK 後,可以根據需求來切換當前環境使用的 JDK:
# 使用 [@] 的格式
$ scoop reset zulu6
$ scoop reset oraclejdk
除了這些指令外,解除安裝、更新清單的指令也可以順道記一下:
# 解除安裝
$ scoop uninstall oraclejdk
# 更新清單
$ scoop update
以上就是使用 Scoop 安裝多版本 JDK 的基本流程。學會使用 Scoop 後,不只可以拿來安裝 JDK,也可以像這位作者拿來 安裝 Windows 上的各種軟體 。
在 IntelliJ IDEA 裡加入 SDKMAN 安裝的 JDK
若你是使用以上的方式安裝 JDK,並且想要在 IntelliJ IDEA 裡使用這些 JDK。可依照上一篇文章裡的步驟,開啟 IntelliJ IDEA 的 JDK 管理畫面,選擇「Add JDK」並指定 JDK 的安裝路徑,把所有 JDK 都設定上去後,未來就可以在專案裡切換多個 JDK 了。
提升對工具的掌握程度
對於開發者來說,SDK 和 IDE 就是生財器具。對工具箱裡的工具愈熟悉,就愈能應對各種情境;在遇到錯誤時,手上也會有更多可能的解法,這往往也是開發者資歷的差距。因此從上一篇文章開始,筆者花了兩篇的篇幅介紹開發工具的各種建置方式,目的就是希望能提升大家對工具的掌握程度,希望對你有幫助。下一篇文章,我們將會開始寫第一個 Kotlin 程式。
參考資料