组装一台计算机 java_如何在同一台计算机上安装多个Java版本
組裝一臺計算機 java
一段時間以前,我寫了一篇文章《 用示例解釋Java Lambda表達式》,但是我很容易瀏覽Java 8,因為我在項目中使用了Java 8,并且允許我安裝和使用它。 但是在我當前的項目中,我們仍在使用Java 8,現在我想升級自己并學習Java 11,但無法安裝它。
許多Java開發人員都會遇到這種情況,有時您想學習和探索Java的最新版本,例如Java 11,但是由于您和您的團隊正在使用某些舊版本(例如Java 8)而無法將其安裝在計算機上。不想破壞您的項目。
或者假設您正在處理多個項目,其中一些使用Java 8,而一些新項目使用Java11。因此,為了并行處理這些項目,您將需要在計算機上安裝多個JDK,并且應該能夠切換它們之間。
如果有辦法,該怎么辦?如果能夠安裝多個版本的Java,然后根據需要關閉然后再打開它們,該怎么辦?
嗯,有一個名為SDKMan的工具,它可以讓我們按照官方網站進行操作:
SDKMan! 是用于管理多個版本的并行版本的工具
大多數基于Unix的系統上的軟件開發套件 。 它提供了一個方便的命令行界面(CLI)和API,用于安裝,切換,刪除和列出候選人。
關于SDKMan的一些要點如下:
安裝SDKMan
SDKMan可以在任何基于UNIX的平臺上運行,例如Mac OSX,Linux,Cygwin,Solaris和FreeBSD,我們可以使用以下命令進行安裝:
只需打開一個新終端并輸入:
$ curl -s " https://get.sdkman.io " | bash | bash $ source "$HOME/.sdkman/bin/sdkman-init.sh"我們可以使用sdk version驗證安裝,并且sdk help命令將為我們提供有關sdk命令用法的完整幫助。
因為SDKMan是用bash編寫的,所以只要求curl和zip / unzip出現在系統上即可。 您也可以先在Windows環境中安裝Cygwin或Git Bash ,然后再運行上述命令,然后在Windows上安裝SDKMan。
使用SDKMan安裝Java
SDKMan支持為JVM安裝29個軟件開發套件,例如Java,Groovy,Scala,Kotlin和Ceylon,Grails,SBT,Spark,Spring Boot。 我們可以使用sdk list命令獲取完整列表。
SDKMan還可以幫助我們安裝Ant,Maven和Gradle之類的構建工具。您可以在Java Build Tools比較中閱讀有關這些構建工具的更多信息:Ant vs Maven vs Gradle 。
命令sdk list java將為我們提供可以使用SDKMan安裝的Java版本列表,如下所示:
$ sdk list java ================================================================================ Available Java Versions ================================================================================ 13 .ea. 02 -open 1.0 . 0 -rc- 10 -grl 12 .ea. 26 -open 1.0 . 0 -rc- 9 -grl 11.0 . 2 -zulu 1.0 . 0 -rc- 8 -grl 11.0 . 2 -open 11.0 . 1 -zulufx 10.0 . 2 -zulu 10.0 . 2 -open 9.0 . 7 -zulu 9.0 . 4 -open 8.0 . 202 -amzn 8.0 . 201 -zulu 8.0 . 201 -oracle 8.0 . 192 -zulufx 7.0 . 181 -zulu 1.0 . 0 -rc- 11 -grl ================================================================================ + - local version * - installed > - currently in use ================================================================================現在,假設我們要安裝Java v9的OpenJDK版本,那么我們將在終端中執行以下命令,該命令還將更新PATH和JAVA_HOME變量:
$ sdk install java 9.0 . 4 -open該命令將花費一些時間,因為它將在我們的計算機上下載JDK,并且該命令將輸出如下內容:
Downloading: java 9.0 . 4 -open In progress... ######################################################################## 100.0 % Repackaging Java 9.0 . 4 -open... Done repackaging... Cleaning up residual files... Installing: java 9.0 . 4 -open Done installing! Setting java 9.0 . default -open as 4 default .現在,如果我們檢查Java版本和JAVA_HOME,我們可以看到Java已更新至9.0.4。
$ java -version openjdk version "9.0.4" OpenJDK Runtime Environment (build 9.0 . 4 + 11 ) OpenJDK 64 -Bit Server VM (build 9.0 . 4 + 11 , mixed mode) $ echo $JAVA_HOME /Users/xbbnrde/.sdkman/candidates/java/current我們可以按照相同的過程安裝上面列表中可以看到的任何版本,讓我們假設我們要安裝Java V11版本,然后可以執行以下命令:
$ sdk install java 11.0 . 2 -open Downloading: java 11.0 . 2 -open In progress... ######################################################################## 100.0 % Repackaging Java 11.0 . 2 -open... Done repackaging... Cleaning up residual files... Installing: java 11.0 . 2 -open Done installing! Do you want java 11.0 . 2 -open to be set as default ? (Y/n): Y ? (Y/n): Y Setting java 11.0 . 2 -open as default .現在,如果再次檢查Java版本和JAVA_HOME,我們可以看到Java已更新為11.0.2:
$ java -version openjdk version "11.0.2" 2019 - 01 - 15 OpenJDK Runtime Environment 18.9 (build 11.0 . 2 + 9 ) OpenJDK 64 -Bit Server VM 18.9 (build 11.0 . 2 + 9 , mixed mode) $ echo $JAVA_HOME /Users/xbbnrde/.sdkman/candidates/java/current 注意:有時候,您需要關閉并重新打開終端才能看到更改。
將SDKMan指向您現有的已安裝Java版本
首先,我們需要找出Java在您計算機上的安裝位置。 在我的機器上,它安裝在文件夾jdk1.8.0_172.jdk ,該文件夾位于/Library/Java/JavaVirtualMachines文件夾下,讓我們通過
<java-folder> 。
我們要做的第二件事是在已安裝的<java-folder>和SDKMan之間建立符號鏈接,我們可以通過運行以下命令來做到這一點:
$ ln -s /Library/Java/JavaVirtualMachines/<java-folder> ~/.sdkman/candidates/java/<java-folder> $ sudo ln -s /Library/Java/JavaVirtualMachines/<java-folder>/Contents/Home/bin ~/.sdkman/candidates/java/<java-folder>/bin現在,如果再次執行sdk list java命令,我們將得到:
================================================================================ Available Java Versions ================================================================================ + jdk1. 8 .0_172.jd 8.0 . 201 -zulu 13 .ea. 02 -open 8.0 . 201 -oracle 12 .ea. 26 -open 8.0 . 192 -zulufx 11.0 . 2 -zulu 7.0 . 181 -zulu > * 11.0 . 2 -open 1.0 . 0 -rc- 12 -grl 11.0 . 2 .j9-adpt 1.0 . 0 -rc- 11 -grl 11.0 . 2 .hs-adpt 1.0 . 0 -rc- 10 -grl 11.0 . 1 -zulufx 1.0 . 0 -rc- 9 -grl 10.0 . 2 -zulu 1.0 . 0 -rc- 8 -grl 10.0 . 2 -open 9.0 . 7 -zulu * 9.0 . 4 -open 8.0 . 202 -amzn 8.0 . 202 .j9-adpt 8.0 . 202 .hs-adpt ================================================================================ + - local version * - installed > - currently in use ================================================================================ 我們可以清楚地看到我們的機器和JDK上已經安裝了3個JDK
到目前為止,正在使用11.0.2-open 。 但是,如果我們要在它們之間切換或安裝新的,我們可以使用sdk use java <version_which_you_want_to_use>輕松地做到這一點,請sdk use java <version_which_you_want_to_use> ,如下所示:
使用Java 9
$ sdk use java 9.0 . 4 -open Using java version 9.0 Using java version . 4 -open in this shell. -open in shell. $ java -version openjdk version "9.0.4" OpenJDK Runtime Environment (build 9.0 . 4 + 11 ) OpenJDK 64 -Bit Server VM (build 9.0 . 4 + 11 , mixed mode)使用本地安裝的Java 8
$ sdk use java jdk1. 8 .0_172.jdk Using java version jdk1. 8 .0_172.jdk in this shell. $ java -version java version "1.8.0_172" Java(TM) SE Runtime Environment (build 1.8 .0_172-b11) Java HotSpot(TM) 64 -Bit Server VM (build 25.172 -b11, mixed mode)使用Java 11
$ sdk use java 11.0 . 2 -open Using java version 11.0 Using java version . 2 -open in this shell. -open in shell. $ java -version openjdk version "11.0.2" 2019 - 01 - 15 OpenJDK Runtime Environment 18.9 (build 11.0 . 2 + 9 ) OpenJDK 64 -Bit Server VM 18.9 (build 11.0 . 2 + 9 , mixed mode)
使用sdk use命令只能使您在執行sdk use命令的同一終端外殼中使用指定版本的JDK。 并且,如果您關閉終端并再次打開它,則將使用以前安裝的版本。
但是,如果要為所有終端和應用程序激活一個JDK版本,則可以使用命令sdk default java <your_version>
或者,您可以卸載該版本并再次安裝,如下所示,它將版本設置為當前的JDK。
卸載JDK版本
如果要卸載任何JDK版本,例如11.0.2-open ,則可以執行以下操作:
$ sdk uninstall java 11.0 . 2 -open并且如果您想重新安裝卸載的版本,可以再次安裝它,這一次SDKMan將不會下載它,因為它已經在您的計算機上安裝了(除非您不手動刪除它)。
$ sdk install java 11.0 . 2 -open Found a previously downloaded java 11.0 . 2 -open archive. Not downloading it again... -open archive. Not downloading it again... Installing: java 11.0 . 2 -open Done installing! Do you want java 11.0 . 2 -open to be set as default ? (Y/n): y ? (Y/n): y Setting java 11.0 . 2 -open as default .使用從IntelliJ IDEA安裝的SDMan JDK
SDKMan將所有JDK安裝在.sdkman/candidates/java/文件夾下,您可以在主目錄中找到.sdkman文件夾。
在IntelliJ中打開任何Java項目后,您可以按Command + :打開項目結構窗口。 在該窗口中,您需要單擊
在Project SDK部分的New...下,您可以在瀏覽窗口中輸入.sdkman/candidates/java/ ,并且可以從.sdkman/candidates/java/選擇任何JDK。
因為.sdkman是隱藏的文件夾,并且如果您在查找它時遇到問題,則始終可以使用以下命令使用非隱藏的文件夾創建指向它的符號鏈接。
$ ln -s ~/.sdkman ~/sdkman您可以在此Github存儲庫中找到我的文章的完整源代碼,請隨時提供寶貴的反饋。
翻譯自: https://www.javacodegeeks.com/2019/04/how-to-install-multiple-versions-of-java-on-the-same-machine.html
組裝一臺計算機 java
總結
以上是生活随笔為你收集整理的组装一台计算机 java_如何在同一台计算机上安装多个Java版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vps怎么上传网站程序(vps怎么上传文
- 下一篇: 百度应用 安卓版下载(百度应用 安卓)