MacOS安装SDKMan管理Java版本

文章目录

  • [1 简介](#1 简介)
  • [2 安装与卸载](#2 安装与卸载)
    • [2.1 安装](#2.1 安装)
    • [2.2 卸载](#2.2 卸载)
  • [3 使用](#3 使用)
    • [3.1 查看其他工具:支持 Ant, Maven 等](#3.1 查看其他工具:支持 Ant, Maven 等)
    • [3.2 查看Java版本](#3.2 查看Java版本)
    • [3.3 安装Java,加上相关的版本](#3.3 安装Java,加上相关的版本)
    • [3.4 设置Java版本(全局)](#3.4 设置Java版本(全局))
    • [3.5 只在当前窗口生效](#3.5 只在当前窗口生效)
    • [3.6 卸载](#3.6 卸载)
        • [1 默认环境无法卸载](#1 默认环境无法卸载)
  • [4 jdk安装的位置](#4 jdk安装的位置)
  • [5 与IDEA集成](#5 与IDEA集成)
  • 参考

1 简介

用过Conda便携Python程序时,可以通过conda env 来管理Python的版本和环境,类似的,Java也有相关的工具,就是今天的SDKMain

通过SDKMan,可以轻松安装相关的Java版本,并设置当前环境和系统环境的Java版本,省去环境变量的切换

2 安装与卸载

官方: https://sdkman.io/install

2.1 安装

在类Unix系统(MacOS, Linux, WSL)上安装

  1. 下载
shell 复制代码
curl -s "https://get.sdkman.io" | bash

需要外网!

  1. 安装
shell 复制代码
source "$HOME/.sdkman/bin/sdkman-init.sh"
  1. 验证安装
shell 复制代码
sdk version

2.2 卸载

  1. 移除文件
shell 复制代码
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
  1. 删除配置,编辑 .zshrc

删除以上内容

shell 复制代码
source .zshrc

3 使用

3.1 查看其他工具:支持 Ant, Maven 等

shell 复制代码
sdk list

3.2 查看Java版本

shell 复制代码
sdk list java

3.3 安装Java,加上相关的版本

shell 复制代码
sdk install java <version>

有的JDK下载不下来,比如Tencent的

3.4 设置Java版本(全局)

shell 复制代码
sdk default java <version>

3.5 只在当前窗口生效

shell 复制代码
sdk use java <version>

查看当前的版本

shell 复制代码
sdk current java

或者

shell 复制代码
java -version

3.6 卸载

shell 复制代码
sdk uninstall java <version>
1 默认环境无法卸载

更换环境后卸载

4 jdk安装的位置

shell 复制代码
cd ~/.sdkman
cd condidates/

这里是sdk的位置

shell 复制代码
cd java
ls

5 与IDEA集成

打开项目 mudule settings

点击左侧SDK选项,在右侧的文件夹中查看不同的版本

随后又安装的JDK


参考

SDKMan多版本Java包管理工具 https://www.bilibili.com/video/BV1di4y1Y7wE

使用SDKMAN安装和管理多个JDK版本 https://www.didispace.com/installation-guide/dev-env/sdkman.html

相关推荐
_Jimmy_4 分钟前
Python 协程库如何使用以及有哪些使用场景
python
aqi0027 分钟前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
西门吹-禅40 分钟前
java springboot N+1问题
java·开发语言·spring boot
第一程序员42 分钟前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
DLYSB_1 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
skywalk81631 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
weixin_BYSJ19871 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
AI小码1 小时前
LLM 应用的缓存工程:当每次 API 调用都在燃烧成本
java·人工智能·spring·计算机·llm·编程·api
Hui Baby2 小时前
Spring Security
java·后端·spring
IT笔记3 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust