多個(gè)java版本的靈活切換和管理方案-創(chuàng)新互聯(lián)

這篇文章主要介紹了多個(gè)java版本的靈活切換和管理方案,具有一定借鑒價(jià)值,需要的朋友可以參考下。下面就和我一起來看看具體的方案內(nèi)容吧。

成都創(chuàng)新互聯(lián)企業(yè)建站,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站建設(shè)、成都做網(wǎng)站中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。

前言:近兩年,Java 版本升級(jí)頻繁,感覺剛剛掌握 Java8,寫本文時(shí),已聽到 java14 的消息,無論是嘗鮮新特性(Java12 中 Collectors.teeing 超強(qiáng)功能使用),還是由于項(xiàng)目升級(jí)/兼容需要,我們可能都要面臨管理多個(gè) Java 版本的情況。

多個(gè)java版本的靈活切換和管理方案

另外 Oracle 自 Java11 開始,更改了用戶協(xié)議,任何商用都會(huì)收費(fèi)。在寫本文時(shí),得到消息「微軟宣布加入 OpenJDK」,打不過就選擇 OpenJDK。隨便 G 一下,當(dāng)個(gè)故事了解就可以

配置單個(gè) Java 環(huán)境變量本身沒什么技術(shù)含量可言,但當(dāng)需要管理多個(gè) Java 版本,重復(fù)配置環(huán)境變量顯然是非??菰锏?,按照傳統(tǒng)的配置方式我們又不能靈活的切換 Java 版本

那要如何輕松管理與使用多個(gè)版本 Java?

多版本 Java 管理

顯然我們不是第一個(gè)有這種困境的人,我所知道的現(xiàn)有方案有三種:

● Jabba

● jenv

● sdkman

本文主要說明如何通過 sdkman 打破我們面臨的困境,幫助我們靈活配置與使用 Java

sdkman 介紹

SDKMAN 是一個(gè)用于在大多數(shù)基于 Unix 系統(tǒng)上管理 多個(gè)軟件開發(fā)工具包 (Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle 等) 的并行版本的工具 。

它提供了一個(gè)方便的命令行接口 (CLI) 和 API,用于安裝、切換、刪除和列出候選對(duì)象。本文主要通過管理 Java 來說明 sdkman 的使用

sdkman 安裝

在類 unix 平臺(tái)上安裝 sdkman 非常容易。它可以順利的安裝在Mac OSX、Linux、WLS、Cygwin、Solaris和FreeBSD 上,同時(shí)還支持Bash和 ZSH shell。

只需打開一個(gè)新終端機(jī)并輸入:

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

按照相應(yīng)的指令提示,完成相應(yīng)的操作后繼續(xù)輸入:

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

到這里我們就可以驗(yàn)證 sdk 的安裝版本了:

$ sdk version
sdk version

多個(gè)java版本的靈活切換和管理方案

上圖紅色框標(biāo)記顯示我當(dāng)前 sdkman 的版本,每次執(zhí)行 sdk version 命令時(shí),都會(huì)檢查是否會(huì)有新版本,如果要更新輸入 y 就可以

有些系統(tǒng)發(fā)行版本不包含 zip 和 unzip,如果安裝時(shí)遇到相關(guān)錯(cuò)誤,可以輸入如下命令安裝 zip 和 unzip

$ sudo apt-get install zip unzip

從上面的安裝命令上可以看出,sdkman 默認(rèn)的安裝路徑是在$HOME/.sdkman 下,我們也可以自定義安裝路徑,只需要指定 SDKMAN_DIR 變量值就好了:

$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

到這里 sdkman 的安裝就結(jié)束了,我們來看看如何使用

sdkman 使用教程

命令行下學(xué)習(xí)一個(gè)新玩意當(dāng)然是查看它的 help 命令,輸入:

$ sdkman help
sdk help[object Object]

感覺上圖按顏色區(qū)分內(nèi)容后,sdkman 的使用說明也就結(jié)束了,我們按照上面的圖來詳細(xì)說明一下使用教程

sdk list

先來輸入:

$ sdk list
sdk list[object Object]

綠色的標(biāo)記就是 sdkman 集成的所有可用的 candidate,通過按回車「enter」按鍵,會(huì)看到更多可用 candidate

我們指定 candidate,輸入:

$ sdk list java
sdk list java[object Object]

從上圖中可以看到所有 java 可用的版本 version,以及標(biāo)識(shí) indentifier,以及狀態(tài) status,我已經(jīng)安裝了 java 12 和 11

有了這些信息做鋪墊,我們可以安裝任意 sdkman 內(nèi)置的軟件開發(fā)包了,繼續(xù)以 java 為例

sdk install

回看 sdkman help 命令的輸出,使用 install 命令,我們?cè)侔惭b一個(gè) Java 最新 13.0.1.j9 版本

多個(gè)java版本的靈活切換和管理方案

從上圖你可以看出,綠色標(biāo)記的內(nèi)容是 list 命令結(jié)果中的 version 值,但是報(bào)錯(cuò)不可用,輸入indentifier 編號(hào)才能正常下載,這里需要注意

安裝完后,status 就會(huì)編程 installed 狀態(tài)

sdk current

當(dāng)安裝多個(gè)版本的 java 時(shí),我們輸入下面命令獲取當(dāng)前正在用 candidate 的版本

$ sdk current java
sdk current java

多個(gè)java版本的靈活切換和管理方案

sdk use

了解了當(dāng)前使用版本,如果我們想切換到其他版本, 可以輸入:

$ sdk use java 12.0.2.j9-adpt

注意??: 這里同樣是指定的 indentifier 的值

多個(gè)java版本的靈活切換和管理方案

sdk default

如果我們想指定某個(gè)版本為默認(rèn)版本,可以輸入:

$ sdk default java jdk1.8.0_162.jdk

注意??: 這里同樣是指定的 indentifier 的值

多個(gè)java版本的靈活切換和管理方案

sdk uninstall

當(dāng)我們想卸載某個(gè)版本可以輸入:

$ sdk uninstall java 12.0.2.j9-adpt

注意??: 這里同樣是指定的 indentifier 的值

sdk upgrade

如果我們想升級(jí)某個(gè) candidate,可以輸入:

$ sdk upgrade java
sdk flush

使用 sdkman 時(shí)間變長(zhǎng)也會(huì)慢慢產(chǎn)生很多緩存內(nèi)容,我們可以輸入

清理廣播消息:

$ sdk flush broadcast

清理下載的 sdk 二進(jìn)制文件(長(zhǎng)時(shí)間使用后清理,可以節(jié)省出很多空間):

$ sdk flush archives

清理臨時(shí)文件內(nèi)容:

$ sdk flush temp

到這里 sdkman 的基本使用就已經(jīng)介紹完了,其實(shí)這些命令都不用急,想不起來的時(shí)候執(zhí)行 sdk help 來臨時(shí)查看一下就好

sdkman 卸載

如果我們不喜歡 sdkman 了,我們也可以輕松的卸載掉它:

$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman

最后打開你的 .bashrc、.bash_profile 和/或者 .profile,找到并刪除下面這幾行。

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"

我用的 zshrc,找到 .zshrc 文件刪除掉上面內(nèi)容即可

到這里基于 Unix 系統(tǒng)的,有關(guān) sdkman 的安裝,使用及下載都已經(jīng)介紹完了,可以上手試一試了

以上就是多個(gè)java版本的靈活切換和管理方案的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎來創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站標(biāo)題:多個(gè)java版本的靈活切換和管理方案-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://bm7419.com/article20/igpco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、Google、移動(dòng)網(wǎng)站建設(shè)、做網(wǎng)站、服務(wù)器托管、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)