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

相关推荐
你的人类朋友4 小时前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
史不了5 小时前
静态交叉编译rust程序
开发语言·后端·rust
码事漫谈6 小时前
C++中的多态:动态多态与静态多态详解
后端
码事漫谈6 小时前
单链表反转:从基础到进阶的完整指南
后端
与遨游于天地6 小时前
Spring解决循环依赖实际就是用了个递归
java·后端·spring
Python私教7 小时前
用 FastAPI + Pydantic 打造“可验证、可热载、可覆盖”的配置中心
后端
Python私教7 小时前
FastAPI “零手工”路由:自动扫描模块、自动注册路由的工程级实践
后端
用户21411832636028 小时前
Claude Skills 实战指南:3 分钟搞定 PPT、海报与 Logo,AI 办公效率翻倍!
后端