如何使用SDKMAN在多个Java版本之间安装/切换

SDKMAN! 用于在macOS,Linux,WLS,Cygwin,Solaris和FreeBSD上管理软件开发工具包的多个版本的工具。您可以安装和管理Java,Groovy,Scala,Kotlin,Ceylon,Ant,Gradle等。
该工具的灵感来自RVM和rbenv,并且需要curl和zip / unzip出现在您的系统上并以Bash编写才能正常工作(不用担心,它也可以在Zsh中工作) )。 Java使用SDKMAN! (使用安装程序或使用自己的Java二进制文件脱机),以及如何管理和使用多个Java版本(设置JAVA_HOME环境变量,临时切换当前终端会话的Java版本等)。 ,将Java版本设置为默认版本或仅特定目录的简便方法。1.首先 请安装SDKMAN!命令行界面.2。列出所有候选Java版本。
现在那个SDKMAN!安装完成后,尝试使用它。使用此命令列出所有候选Java版本。

sdk list java

这个清单 采用OpenJDK 可安装的版本 亚马逊Java,Azul Zulu OpenJDK,Java.net等。
以下是使用“ list java”命令(非常大的输出)时看到的代码片段:

$ sdk list java
..............................................................
Available Java Versions
==============================================================
 Vendor     |Use| Version   | Dist| Status   | Identifier
--------------------------------------------------------------
 AdoptOpenJDK|  | 14.0.2.j9 | adpt| installed| 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      
             |  | 13.0.2.hs | adpt|          | 13.0.2.hs-adpt      
             |  | 12.0.2.j9 | adpt|          | 12.0.2.j9-adpt      
             |  | 11.0.8.hs | adpt| installed| 11.0.8.hs-adpt      
             |  | 8.0.262.j9| adpt|          | 8.0.262.j9-adpt     
..............................................................     
 Azul Zulu   |  | 14.0.2    | zulu|          | 14.0.2-zulu         
             |  | 13.0.4    | zulu|          | 13.0.4-zulu         
             |  | 13.0.3.fx | zulu|          | 13.0.3.fx-zulu      
             |  | 12.0.2    | zulu|          | 12.0.2-zulu         
             |  | 11.0.8    | zulu|          | 11.0.8-zulu             
..............................................................   
 Java.net    |  | 16.ea.6   | open|          | 16.ea.6-open        
             |  | 15.ea.32  | open|          | 15.ea.32-open       
             |  | 14.0.2    | open|          | 14.0.2-open         
             |  | 13.0.2    | open|          | 13.0.2-open         
             |  | 12.0.2    | open|          | 12.0.2-open         
             |  | 11.0.7    | open|          | 11.0.7-open         
             |  | 10.0.2    | open|          | 10.0.2-open         
             |  | 9.0.4     | open|          | 9.0.4-open          
             |  | 8.0.252   | open|          | 8.0.252-open        
.............................................................

请注意 Identifier 柱。这是用于安装Java版本的软件包名称。 SDKMAN!用于安装Java版本。
可用于安装Java版本的命令是:

sdk install java IDENTIFIER

交换 IDENTIFIER Java版本标识符,如中所示 sdk list java 命令输出。
例如,要安装AdoptOpenJDK版本11.0.8.hs,安装命令为:

sdk install java 11.0.8.hs-adpt

SDKMAN!您还可以如下安装Java的本地版本:

sdk install java [UNIQUE-IDENTIFIER] /path/to/Java

例如,下载最新的Oracle Java 14 .tar.gz(如果不使用Oracle Java安装程序),将其解压缩,然后使用SDKMAN。要安装使用:

sdk install java 14.0.2-oracle ~/Downloads/jdk-14.0.2

4.切换Java版本。
有3种方法可以使用SDKMAN管理Java版本! :

  • 将Java版本设置为默认版本
  • 仅将Java版本用于当前终端会话
  • 输入目录时激活特定的Java版本

A.将Java版本设置为默认版本。
要配置使用SDKMAN安装的Java版本之一!使用以下内容作为默认Java版本(无论是使用内置安装程序安装还是从本地目录安装):

sdk default java IDENTIFIER

交换 IDENTIFIER Java版本标识符,如中所示 sdk list java 命令输出。
例如,要将AdoptOpenJDK版本11.0.8.hs设置为默认的系统Java版本,请使用:

sdk default java 11.0.8.hs-adpt

这还将设置JAVA_HOME环境变量。 ~/.sdkman/candidates/java/current.B。仅将Java版本用于当前的终端会话。

sdk use java IDENTIFIER

交换 IDENTIFIER Java版本标识符,如中所示 sdk list java 命令输出。
例如,将本地安装的14.0.2-oracle Java设置为当前终端会话的Java版本。

sdk use java 14.0.2-oracle

C.输入目录时激活特定的Java版本。
在使用您的自定义Java版本的目录中执行此操作。

sdk env init

文件名为 .sdkmanrc 它是在此目录中生成的。打开并更改值 java= 更改为要使用的Java版本ID。 11.0.8.hs-adpt 对于AdoptOpenJDK 11.0.8。
现在就做 sdk env 在此目录中,激活您设置的Java版本 .sdkmanrc 编辑文件或SDKMAN!配置文件(~/.sdkman/etc/config)和设置 sdkman_auto_env=true SDK版本可以自动切换 cd 无论您如何通过SDKMAN使用Java版本,都可以使用以下命令查看当前使用的Java版本(由SDKMAN设置):

sdk current java

您也可以直接就所使用的当前版本与Java联系。

java -version
javac -version
Sidebar