<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁 > 空調 >

    如何使用SDKMAN管理您的JDK

    譯者 | 胥磊

    1. 前言

    不久前,我的一位同事向我展示了他是如何使用 SDKMAN,以及如何輕松在他的 Linux 系統上維護不同版本的 JDK、Maven等等。我以前聽說過 SDKMAN,當時沒有花時間去仔細研究,不過現在我已經掌握了它的使用方法。

    在開始使用 SDKMAN 之前,我查看了我的 Linux上JDK的版本(使用的是Ubuntu 20.04.4 LTS 版本)。

    首先,我查了下update-alternatives命令返回的Java版本的列表。發現我的系統里有兩個Java 11版本。

    復制

    Shell

    $ update-alternatives --list java

    /usr/lib/jvm/java-11-openjdk-amd64/bin/java

    /usr/lib/jvm/jdk-11.0.3+7/bin/java

    我還通過 IntelliJ 安裝過JDK,這些可以在你系統的home 目錄下的.Jdks里找到。這就有了3個不同的Java版本。

    復制

    Shell

    $ ls .jdks/

    openjdk-14.0.1 openjdk-16.0.2

    openjdk-14.0.1-intellij-downloader-info.txt openjdk-17

    所以結論就是:我已經把系統搞的一團糟了。現在,讓我們看看 SDKMAN 是否能夠幫助我去清理系統環境,并刪除所有冗余的JDK。

    2. 安裝

    SDKMAN 的安裝非常簡單,只需要執行以下的命令:

    復制

    Shell

    $ curl -s "https://get.sdkman.io" | bash

    All done!

    Please open a new terminal, or run the following in the existing one:

    source "/home//.sdkman/bin/sdkman-init.sh"

    Then issue the following command:

    sdk help

    Enjoy!!!

    通過source命令讀取和執行所需要的初始化文件里的命令:

    復制

    Shell

    $ source "/home//.sdkman/bin/sdkman-init.sh"

    您可以通過請求 SDKMAN 的版本來驗證安裝是否成功。

    復制

    Shell

    $ sdk version

    ==== BROADCAST =================================================================

    * 2022-03-03: jbang 0.90.2 available on SDKMAN! https://github.com/jbangdev/jbang/releases/tag/v0.90.2

    * 2022-03-02: quarkus 2.7.3.Final available on SDKMAN! https://github.com/quarkusio/quarkus/releases/tag/2.7.3.Final

    * 2022-02-28: micronaut 3.3.4 available on SDKMAN!

    ================================================================================

    SDKMAN 5.13.2

    如你所見,最新版本也展示出來了,這對于獲得最新的可用版本通知同樣非常有幫助。

    以上就是SDKMAN安裝的全部內容。

    3. JDK列表

    您可以通過查看網站或者執行list 命令來了解哪些工具包可以通過 SDKMAN 進行安裝。您也可以重新通過less這個基本命令進行分頁來翻閱和搜索列表。

    復制

    Shell

    $ sdk list

    可以通過list命令后綴java參數來獲取更詳細的JDK可用版本列表,當然這些可用的 JDK也可以在網站上找到。此外也可以重新通過less命令進行分頁輸出。

    復制

    Shell

    $ sdk list java

    4.安裝JDK

    首先,我將要核實系統中默認使用的是哪個版本的 Java。看來我使用的是 AdoptOpenJDK 11.0.3版本,這個比我預想的要老。

    復制

    Shell

    $ java --version

    openjdk 11.0.3 2019-04-16

    OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)

    OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)

    從 SDKMAN選擇由Adoptium 提供的名為Eclipse Temurin 的AdoptOpenJDK,安裝最新的 JDK 17 LTS 版本。

    復制

    Shell

    $ sdk install java 17.0.2-tem

    Downloading: java 17.0.2-tem

    In progress...

    Repackaging Java 17.0.2-tem...

    Done repackaging...

    Installing: java 17.0.2-tem

    Done installing!

    Setting java 17.0.2-tem as default.

    再次驗證下默認的 Java 的版本號,它已經更改為你剛剛安裝的版本。

    復制

    Shell

    $ java --version

    openjdk 17.0.2 2022-01-18

    OpenJDK Runtime Environment Temurin-17.0.2+8 (build 17.0.2+8)

    OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)

    當然也可以通過同樣的方式安裝 JDK 11 LTS 版本。最后問題來了,你是否希望這個 JDK 成為默認版本?當然不是了,JDK 17才是最新 LTS 版本,理應作為默認版本。

    復制

    Shell

    $ sdk install java 11.0.14-tem

    Downloading: java 11.0.14-tem

    In progress...

    Repackaging Java 11.0.14-tem...

    Done repackaging...

    Installing: java 11.0.14-tem

    Done installing!

    Do you want java 11.0.14-tem to be set as default? (Y/n): n

    5.默認JDK

    如果您改變初衷,仍然希望使用JDK 11作為默認版本,那么您可以使用default命令來實現這一點。

    復制

    Shell

    $ sdk default java 11.0.14-tem

    Default java version set to 11.0.14-tem

    對此驗證一下:

    復制

    Shell

    $ java --version

    openjdk 11.0.14 2022-01-18

    OpenJDK Runtime Environment Temurin-11.0.14+9 (build 11.0.14+9)

    OpenJDK 64-Bit Server VM Temurin-11.0.14+9 (build 11.0.14+9, mixed mode)

    然后把它重新設置為 JDK 17。

    復制

    Shell

    $ sdk default java 17.0.2-tem

    Default java version set to 17.0.2-tem

    當然也可以僅通過在終端回話中使用 use 命令來更改默認的 JDK。

    復制

    Shell

    $ sdk use java 11.0.14-tem

    Using java version 11.0.14-tem in this shell.

    在這個命令窗口中,看到當前使用的JDK版本是JDK11。

    復制

    Shell

    $ java --version

    openjdk 11.0.14 2022-01-18

    OpenJDK Runtime Environment Temurin-11.0.14+9 (build 11.0.14+9)

    OpenJDK 64-Bit Server VM Temurin-11.0.14+9 (build 11.0.14+9, mixed mode)

    打開另一個終端窗口,發現JDK版本仍然是 JDK 17。需要注意的是, JAVA_HOME 環境變量也是指向正確的 Java 版本。

    復制

    Shell

    $ echo $JAVA_HOME

    /home//.sdkman/candidates/java/current

    6.清除其他的JDK

    當前的JDK已經是通過 SDKMAN 安裝的,是時候清除系統中的其他JDK了。

    復制

    Shell

    $ dpkg --list | grep jdk

    ii openjdk-11-jre-headless:amd64 11.0.13+8-0ubuntu1~20.04

    移除openjdk-11-jre-headless:amd64

    復制

    Shell

    $ sudo apt remove openjdk-11-jre-headless:amd64

    再次通過 update-alternatives命令進行驗證,我們注意到仍然存在一個可用的Java 11的版本。

    復制

    Shell

    $ update-alternatives --list java

    /usr/lib/jvm/jdk-11.0.3+7/bin/java

    通過update-alternatives命令進行移除。

    復制

    Shell

    $ sudo update-alternatives --remove "java" /usr/lib/jvm/jdk-11.0.3+7/bin/java

    update-alternatives: removing manually selected alternative - switching java to auto mode

    通過update-alternatives命令進行驗證,它已經移除了。

    復制

    Shell

    $ update-alternatives --list java

    update-alternatives: error: no alternatives for java

    但是,它并沒有從文件系統中刪除,需要導航到/usr/lib/jvm 目錄,然后刪除 JDK的目錄。

    復制

    Shell

    $ sudo rm -rf jdk-11.0.3+7/

    剩下要做的就是移除 IntelliJ 安裝的 JDK。它們位于home目錄下的.jdks中。導航到你的Home目錄并移除.jdks目錄。

    復制

    Shell

    $ rm -rf .jdks/

    7.設置IntelliJ的JDK

    打開 IntelliJ 導航到File – Project Structure,這也是配置 JDK 的位置。有點奇怪的是,它位于Project Structure下面,而不是通常的Settings目錄下。通過點擊 + 符號,你可以添加 SDKMAN JDK。

    你還需要為自己的工程選擇JDK。

    構建你的工程,在日志中,你會注意到正在使用 SDKMAN JDK。

    8.結論

    SDKMAN 是一個可以用來控制不同版本且使用簡單的工具,很有必要成為你開發工具包的一部分。它降低了我系統的混亂程度,讓我可以很容易地控制系統里的不同版本。此外,還可以使用upgrade命令來檢查是否有新的版本。

    譯者介紹

    胥磊,51CTO社區編輯,某頭部電商技術副總監,關注Java后端開發,技術管理,架構優化,分布式開發等領域。

    原文標題:How to Manage Your JDKs With SDKMAN,作者:Gunter Rotsaert

    責任編輯:Rex_08

    關鍵詞: sdkman Java Shell --list https
    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 欧美视频www| 麻豆网神马久久人鬼片| 99heicom视频| 樱桃视频影院在线播放免费下载| 国产精品自产拍在线观看花钱看 | 久久99精品久久久久久水蜜桃 | 欧美高清性XXXXHDVIDEOSEX| 在线网站你懂得| 啊轻点灬大ji巴太粗太长了免费 | 最新国语自产精品视频在| 国内精品久久久久精品| 动漫人物一起差差差漫画免费漫画| 五月综合色婷婷影院在线观看 | 久久亚洲国产精品123区| 香蕉视频一区二区三区| 欧美一级特黄啪啪片免费看| 在线a亚洲视频播放在线观看| 亚洲精品视频在线免费| 91丁香亚洲综合社区| 欧美人与物videos另类xxxxx| 国语精品91自产拍在线观看二区| 亚洲欧洲精品视频在线观看| eeuss影院130020部| 精品国产麻豆免费人成网站| 日本五月天婷久久网站| 国产成人久久久精品二区三区| 亚洲午夜精品久久久久久浪潮 | 亚洲欧美另类中文字幕| 欧美理论片在线观看| 国产精品免费看久久久无码| 亚洲av无码专区国产乱码不卡 | 色欲aⅴ亚洲情无码AV| 日韩精品久久无码人妻中文字幕| 国产亚洲综合欧美视频| 乌克兰大白屁股| 日本片免费观看一区二区| 欧美福利视频网| 国产恋夜精品全部护士| 中文字幕无线码中文字幕免费| 男人j放进女人p动态图视频| 女人让男人免费桶爽30分钟 |