跳到主要内容

sdkman

简介

sdkman github

sdkman官网

SDKMAN是一款用于在大多数基于Unix的系统上管理多版本JVM(Java虚拟机)相关软件开发工具包的并行工具。该工具提供了便捷的命令行界面(CLI)和应用程序接口(API),支持安装、切换、删除及列出各版本候选包的操作

安装

安装

说明

sdkman安装位置在 $HOME/.sdkman

并且会在你的shell文件 (~/.zshrc~/.bashrc) 中写入以下内容

export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
curl -s https://get.sdkman.io | bash

查看版本

$ sdk version
SDKMAN!
script: 5.19.0
native: 0.7.4 (macos aarch64)

更新

sdk selfupdate force

卸载

tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ $HOME/.sdkman
rm -rf ~/.sdkman

在shell文件 (~/.zshrc~/.bashrc) 中删除以下配置

export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"

使用

查看可用版本

$ sdk list java
================================================================================
Available Java Versions for macOS ARM 64bit
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
Corretto | | 24 | amzn | | 24-amzn

| | 23.0.2 | amzn | | 23.0.2-amzn

| | 21.0.6 | amzn | | 21.0.6-amzn

| | 17.0.14 | amzn | | 17.0.14-amzn

| | 11.0.26 | amzn | | 11.0.26-amzn

| | 8.0.442 | amzn | | 8.0.442-amzn

Gluon | | 22.1.0.1.r17 | gln | | 22.1.0.1.r17-gln

| | 22.1.0.1.r11 | gln | | 22.1.0.1.r11-gln

GraalVM CE | | 24 | graalce | | 24-graalce

| | 23.0.2 | graalce | | 23.0.2-graalce
......

安装jdk

export JAVA_VERSION='23.0.2-oracle'
sdk install java $JAVA_VERSION

查看当前系统安装的jdk

$ ls ~/.sdkman/candidates/java/
11.0.11-oracle
17.0.11-oracle
21.0.3-oracle
22.0.1-oracle
current

设置默认jdk

export JAVA_VERSION='23.0.2-oracle'
sdk java default $JAVA_VERSION

使用sdkman管理手动安装的jdk

mac上通过dmg安装文件安装了一个jdk

$ java -version
java version "17.0.11" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)

安装位置在 /Library/Java/JavaVirtualMachines/

$ ls /Library/Java/JavaVirtualMachines/                             
jdk-11.0.11.jdk

创建软链接

说明

创建目录软链接后就可以使用sdkman命令管理手动安装的jdk了

ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home ~/.sdkman/candidates/java/jdk-11.0.11-oracle

手动切换

$ sdk use java 11.0.11-oracle 

Using java version 11.0.11-oracle in this shell.

查看版本

$ java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
Right Bottom Gif
Right Top GIF