使用 SDKMAN 安装 JDK

使用 SDKMAN 安装 JDK

SDKMAN 是一个用于管理多版本软件开发工具包(SDK)的命令行工具,支持安装和管理多种语言的 SDK,包括 Java、Kotlin、Groovy 等。以下是使用 SDKMAN 安装 JDK 的详细步骤:

1. 安装 SDKMAN

打开终端,执行以下命令来安装 SDKMAN:

bash

arduino 复制代码
curl -s "https://get.sdkman.io" | bash

上述命令会从官方网站下载安装脚本并执行。安装完成后,按照提示激活 SDKMAN,执行以下命令:

bash

bash 复制代码
source "$HOME/.sdkman/bin/sdkman-init.sh"

你可以通过下面的命令来验证 SDKMAN 是否安装成功:

bash

复制代码
sdk version

如果安装成功,会显示 SDKMAN 的版本信息。

2. 列出可用的 JDK 版本

使用以下命令列出 SDKMAN 支持的所有 JDK 版本:

bash

复制代码
sdk list java

执行该命令后,会显示一个包含各种 JDK 发行版(如 Adoptium、Azul Zulu、Oracle 等)及其不同版本号的列表。列表中会有不同的标识符,如 17.0.7-tem 表示 Adoptium(原 Temurin) 发行版的 Java 17.0.7 版本。

3. 安装指定的 JDK 版本

根据上一步列出的 JDK 版本信息,选择你想要安装的版本,然后使用以下命令进行安装。例如,要安装 Adoptium 的 Java 17 版本,可以执行:

bash

复制代码
sdk install java 17.0.7-tem

安装过程中,SDKMAN 会自动下载并配置所选的 JDK 版本。

4. 验证 JDK 安装

安装完成后,你可以通过以下命令验证 JDK 是否安装成功:

bash

复制代码
java -version

如果安装成功,会显示你刚刚安装的 JDK 版本信息。

5. 切换 JDK 版本(可选)

如果你已经安装了多个 JDK 版本,可以使用以下命令在不同版本之间进行切换:

bash

perl 复制代码
sdk use java <版本标识符>

例如,要切换到之前安装的 17.0.7-tem 版本,可以执行:

bash

perl 复制代码
sdk use java 17.0.7-tem

你还可以使用 sdk default java <版本标识符> 命令将某个 JDK 版本设置为默认版本,这样每次打开新的终端会话时都会使用该版本。

查看 JDK 安装路径

方法一:使用 sdk current 命令

在终端中输入以下命令:

bash

sql 复制代码
sdk current java

执行该命令后,输出结果会显示当前正在使用的 JDK 版本以及其安装路径。示例输出如下:

plaintext

kotlin 复制代码
Using java version 17.0.7-tem in this shell.
/Users/yourusername/.sdkman/candidates/java/17.0.7-tem

其中 /Users/yourusername/.sdkman/candidates/java/17.0.7-tem 就是当前 JDK 的安装路径。

方法二:借助 which 命令查看 java 可执行文件路径

在终端运行以下命令:

bash

bash 复制代码
which java

此命令会显示 java 可执行文件的路径,通过该路径可以找到 JDK 的安装目录。例如,输出可能是 /Users/yourusername/.sdkman/candidates/java/17.0.7-tem/bin/java,那么去掉 /bin/java 部分,即 /Users/yourusername/.sdkman/candidates/java/17.0.7-tem 就是 JDK 的安装路径。

方法三:通过 JAVA_HOME 环境变量查看

如果已经正确配置了 JAVA_HOME 环境变量,可使用如下命令查看其值:

bash

bash 复制代码
echo $JAVA_HOME

输出的内容即为 JDK 的安装路径。一般来说,使用 SDKMAN 安装 JDK 后,在配置 JAVA_HOME 时会将其设置为对应 JDK 版本的根目录,如 /Users/yourusername/.sdkman/candidates/java/17.0.7-tem

相关推荐
丘山子1 小时前
DNS 原理入门
前端·后端·面试
你知道烟火吗1 小时前
谈谈对反射的理解?
java·开发语言·spring boot·后端
我爱996!1 小时前
Spring IoC&DI
java·后端·spring
创码小奇客1 小时前
深度对比:RocketMQ 凭什么成为阿里系首选消息队列?
后端·消息队列·trae
盖世英雄酱581362 小时前
事务报错,为何数据还是插入成功了❓
java·数据库·后端
it自2 小时前
Redisson在Spring Boot项目中的集成与实战
java·spring boot·redis·后端·缓存
kaliarch2 小时前
Terraform Authoring Operations Professional 认证考试经验分享:从备考到实战全攻略
后端
kaliarch3 小时前
迈向云基础设施自动化 - Terraformer 助力腾讯云资源管理转型
后端·云原生·自动化运维
AQin10123 小时前
一篇文章带你记住 OSI 和 TCP/IP 模型
后端·网络协议