iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
1

軟體開發與時俱進、推陳出新, 為了確保自己寫好的程式有更好的相容性,常會安裝多個版本的 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:

# 使用 <java>[@<version>] 的格式
$ 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 程式。

參考資料


上一篇
第二天:建置開發環境
下一篇
第四天:我的第一個 Kotlin 程式
系列文
新手也能懂的 Kotlin Collection 賞玩門道31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言