SDKMAN Java 版本管理器完整教程
SDKMAN(Software Development Kit Manager)是 JVM 生态系统的版本管理利器,不仅可以管理多个 JDK 版本(Oracle、OpenJDK、GraalVM 等),还能管理 Gradle、Maven、Kotlin、Scala 等 JVM 相关工具。本文将介绍如何在搬瓦工 VPS 上使用 SDKMAN 管理 Java 环境。购买搬瓦工使用优惠码 NODESEEK2026 享 6.77% 折扣。
一、安装 SDKMAN
# 安装前提:需要 curl、zip、unzip
apt update && apt install curl zip unzip -y
# 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash
# 加载 SDKMAN
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 验证安装
sdk version
二、安装 JDK
# 查看可用的 Java 版本
sdk list java
# 安装默认 JDK(最新推荐版本)
sdk install java
# 安装指定版本(以 Temurin/Adoptium 为例)
sdk install java 21.0.2-tem
sdk install java 17.0.10-tem
sdk install java 11.0.22-tem
# 安装 GraalVM
sdk install java 21.0.2-graalce
# 安装 Amazon Corretto
sdk install java 21.0.2-amzn
# 查看已安装版本
sdk list java | grep installed
三、版本切换
# 切换当前 Shell 使用的 Java 版本
sdk use java 17.0.10-tem
# 设置全局默认版本
sdk default java 21.0.2-tem
# 查看当前版本
sdk current java
java -version
# 查看所有当前使用的 SDK 版本
sdk current
项目级版本管理
# 在项目目录创建 .sdkmanrc
cd /opt/my-java-project
sdk env init
# 会创建 .sdkmanrc 文件,内容如:
# java=17.0.10-tem
# 进入项目目录后自动切换
sdk env
# 启用自动切换(在 ~/.sdkman/etc/config 中设置)
sed -i 's/sdkman_auto_env=false/sdkman_auto_env=true/' ~/.sdkman/etc/config
四、管理构建工具
# 安装 Maven
sdk install maven
sdk install maven 3.9.6
mvn --version
# 安装 Gradle
sdk install gradle
sdk install gradle 8.5
gradle --version
# 安装 Kotlin
sdk install kotlin
# 安装 Spring Boot CLI
sdk install springboot
# 查看所有可管理的 SDK
sdk list
五、实战:部署 Spring Boot 应用
# 安装 Java 21 和 Maven
sdk install java 21.0.2-tem
sdk install maven 3.9.6
# 克隆项目并构建
cd /opt
git clone https://github.com/yourname/spring-app.git
cd spring-app
# 打包
mvn clean package -DskipTests
# 运行
java -jar target/app.jar --server.port=8080
Systemd 服务配置
cat > /etc/systemd/system/spring-app.service << 'EOF'
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
User=deploy
WorkingDirectory=/opt/spring-app
Environment="JAVA_HOME=/home/deploy/.sdkman/candidates/java/current"
ExecStart=/home/deploy/.sdkman/candidates/java/current/bin/java -jar target/app.jar
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable spring-app && systemctl start spring-app
六、常用命令速查
sdk list java # 查看可安装的 Java 版本
sdk install java 21 # 安装 Java(简写版本号)
sdk uninstall java 11 # 卸载指定版本
sdk use java 17 # 临时切换版本
sdk default java 21 # 设置全局默认
sdk current # 查看当前所有 SDK 版本
sdk env init # 创建项目配置
sdk env # 加载项目配置
sdk upgrade # 升级所有候选项
sdk selfupdate # 更新 SDKMAN 自身
sdk flush # 清理临时文件
七、卸载和清理
# 清理下载缓存
sdk flush archives
sdk flush tmp
# 卸载特定版本
sdk uninstall java 11.0.22-tem
# 完全卸载 SDKMAN
rm -rf ~/.sdkman
# 然后从 ~/.bashrc 中删除 SDKMAN 相关行
总结
SDKMAN 是 JVM 开发者的必备工具,让 Java 多版本管理变得简单优雅。它不仅管理 JDK,还能管理整个 JVM 生态的构建工具。对于在搬瓦工 VPS 上部署 Java 应用的用户,SDKMAN 可以大幅简化环境配置。如果你同时使用多种编程语言,也可以了解通用版本管理器 asdf。选购搬瓦工请访问 全部方案,使用优惠码 NODESEEK2026 享 6.77% 折扣,通过 bwh81.net 进入官网。