转载

如何在一台计算机上安装多个 JDK 版本

对于使用 Java 语言开发的朋友可能会遇到这种情况,有时想学习和探索 Java 的最新版本提供的一些新特性,比如 Java 11 ,但你无法将其安装在自己的计算机上,因为你的团队正在使用比这个旧的版本(我们目前用的 Java 8 ),你并不想影响目前的项目。或者你目前是在维护和开发多个项目,而这些不同的项目使用的 JDK 版本不一样,比如那些维护的老项目使用的是 JDK 8 ,而新项目你打算使用比较新的版本 JDK 11 ,以上这些情况都需要在计算机上安装多个 JDK ,并且应该能够在多个版本之间方便快速的切换。今天要介绍的主角 SDKMAN 可以很好的解决上面这种问题,它提供了在同一台计算机上对多个版本的开发工具包管理。需要注意的是:这个工具只适用于类 Unix 的系统(比如:Mac OSX、Linux、Cygwin、Solaris、FreeBSD 等)。

SDKMan 简介

直接引用 SDKMan 官网上的介绍如下:

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates.

简单来说就是其提供了管理多个版本开发工具包的能力,同时也提供了一些命令行接口让我们方便安装、版本切换、版本移除和显示版本列表。关于 SDKMan 还有几个要点如下:

  1. SDKMan 是由开源社区开发的,免费使用,。
  2. SDKMan 是用 bash 编写的,它只需要您的系统上安装了 curlzip / unzip 命令即可。
  3. SDKMan 可以为 JVM 安装大约 29 个软件开发包,比如 JavaGroovyScalaKotlinGradleMavenSparkSpring Boot 等。
  4. SDKMan 可以自动处理帮我们配置 *_HOME(e.g.:JAVA_HOME)PATH 环境变量,因此我们不需要担心切换版本后这些环境变量的设置。

安装 SDKMan

SDKMan 可以运行在任何类 Unix 系统上,我们只需要在命令行输入以下命令即可安装:

curl -s "https://get.sdkman.io" | bash

如何在一台计算机上安装多个 JDK 版本

然后执行以下命令,加载文件 sdkman-init.sh 到当前环境,执行完该命令之后我们可以通过 sdk version 来验证是否安装成功,同时还可以通过 sdk help 命令显示有关 sdk 命令用法和帮助( PS: 对于使用 Windows 环境的朋友可以安装 Cygwin 或 Git Bash 运行以上命令 )。

source "$HOME/.sdkman/bin/sdkman-init.sh"

如何在一台计算机上安装多个 JDK 版本

使用 SDKMan 安装 JDK

前面已经介绍过, SDKMan 支持多达大约 29 个软件开发包管理,我们也可以使用 sdk list 命令来查看支持的完整列表,本文主要介绍 Java 相关的内容,可以通过命令 sdk list java 来查看支持安装的 Java 版本。

如何在一台计算机上安装多个 JDK 版本

使用以下命令安装 Java 11

sdk install java 11.0.7.hs-adpt

该命令会花费一些时间,因为它会在我们的计算机上下载对应版本的 JDK ,执行完成之后 SDKman 会自动给我们配置好 JAVA_HOMEPATH 等环境变量,可以通过 Java -version 命令验证。

如何在一台计算机上安装多个 JDK 版本

现在,如果检查 Java 版本和 JAVA_HOME 环境变量,可以看到当前 Java 的版本已更新为 11.0.7

如何在一台计算机上安装多个 JDK 版本

可以使用以下命令来设置默认使用的 JDK 版本。

sdk default java 11.0.7.hs-adpt

将 SDKMan 指向已安装 Java 版本

如果在你安装 SDKMan 之前本地电脑已经安装了 JDK 版本,默认是无法识别到的,那么你需要进行以下配置才能让 SDKMan 识别已安装的版本,首先,第一步你要先找到你的 Java 安装目录,我本地 Mac 的安装目录是 /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk ,然后使用命令 ln -s 来为 Java 安装目录建立符号链接。

如何在一台计算机上安装多个 JDK 版本

多个 JDK 版本切换示例

SDKMan 提供了命令 sdk use java <version_want_to_use> 在多个版本之间进行切换,使用 sdk use java jdk1.8.0_181.jdk 命令来使用之前本地安装的 Java 8

如何在一台计算机上安装多个 JDK 版本

使用命令 sdk use java 11.0.7.hs-adpt 来设置版本为 Java 11

如何在一台计算机上安装多个 JDK 版本

需要注意的是:使用命令 sdk use java <version> 只在当前会话有效,如果你关闭终端并再次打开它,则将使用以前安装的版本,不会改变你本地使用的版本,此时可以使用 sdk default java <version> 来设置永久生效。

如何卸载指定的 JDK 版本

如果你想要卸载任何已安装的 JDK 版本,比如: 11.0.7.hs-adpt ,可以使用以下命令卸载:

sdk uninstall java 11.0.7.hs-adpt

此时,如果你想再次安装之前通过 SDKMan 卸载的版本,此时不会再次重新下载,会提示 Found a previously downloaded java 11.0.7.hs-adpt archive. Not downloading it again... ,因为之前删除操作并没有真正的从你计算机上删除源压缩包文件。

IntelliJ IDEA 使用 SDMan 安装 JDK

SDKMan 所有安装的 JDK 都放在目录 .sdkman/candidates/java/ ,你可以在你当前用户的 home 文件夹下面看到该文件夹(注意是隐藏文件夹)。

如何在一台计算机上安装多个 JDK 版本

IntelliJ IDEA 中打开任何一个 Java 项目后,您可以按 Command + : 快捷键打开项目结构窗口,在 Project SDK 模块选择新建一个 JDK 后输入你需要的 JDK 版本在 SDKMan 中的路径即可。

如何在一台计算机上安装多个 JDK 版本

因为 .sdkman 是隐藏文件夹不太方便查找,可以使用以下命令创建一个非隐藏文件夹指向它。

ln -s ~/.sdkman ~/sdkman
原文  https://www.mghio.cn/post/51e5bd99.html
正文到此结束
Loading...