使用 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。

相关推荐
captain3761 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
IT_陈寒2 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
泡海椒2 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥43092 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
岩钧2 小时前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端
学到老活到老3 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
用户360055579003 小时前
Kestrel_VLLM - 25 · 全注意力层设备化、整层对拍与访存粒度
后端
yliucherish3 小时前
从零实现一个 SQL 注入检测引擎:报错注入与布尔盲注的误报控制
后端
bigbread3 小时前
状态模式-住院患者状态管理
后端