由于JDK版本极快的更新速度,因此常常会出现不同项目需要的JDK不同情况,所以需要明白如何在操作系统安装配置多个JDK,本篇博客以MacOS举例。
提示:如果是M系列芯片,推荐下载arm版本
目录
概述
安装配置多个JDK一共三步:
- 在Oracle官网下载JDK
- 安装JDk
- 配置环境变量
实现多个JDK的关键是如何配置环境变量,是本文的重点,因此第一二步略过
配置环境变量
JDK下载与安装的区别
下载 JDK:
- 过程: 这涉及从 Oracle 官方网站、OpenJDK 社区,或者其他提供商下载 JDK 的二进制分发包。这通常是一个
.dmg
(Disk Image)、.tar.gz
、或者像.pkg
这样的安装包。 - 本质: 下载只是将安装文件从网络传输到你的本地计算机,这一步只是在你的硬盘上存储了安装文件,并未进行任何系统级的修改。
安装 JDK:
- 过程: 这一步包括运行实际下载的安装程序或按照下载 README 的指示进行解压和配置。安装过程通常会复制 JDK 文件到系统的特定目录(例如
/Library/Java/JavaVirtualMachines
),以及更新相关的系统环境配置。 - 本质: 安装步骤会把 JDK 添加到计算机的路径中,使其成为全局可用。它通常会在系统中注册这个 JDK,使得 Java 命令(例如
java
,javac
)可以在终端中全局访问。
简而言之:下载只是压缩包,安装包括解压与配置
了解配置项
先给大家看看配置项
#JAVA
JAVA_HOME_17=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
export JAVA_HOME=$JAVA_HOME_8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH
export CLASSPATH
用编程的思维大致理解要做的事
- 定义变量
- 操作变量
- return变量
JAVA_HOME_17
and JAVA_HOME_8
这些行分别定义了两个环境变量 JAVA_HOME_17
和 JAVA_HOME_8
,用于存储 Java 17 和 Java 8 安装的路径。
JAVA_HOME_17
设置为 Java 17 的路径:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
。JAVA_HOME_8
设置为 Java 8 的路径:/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
。
export JAVA_HOME=$JAVA_HOME_8
这行命令将 JAVA_HOME
环境变量设置为 JAVA_HOME_8
的值,指定将使用 Java 8 作为默认的 Java 环境。这里是切换JDK的重点
export
命令用于将环境变量暴露给终端中运行的所有子进程,确保在终端中运行的 Java 程序使用这个 JDK。
PATH=$JAVA_HOME/bin:$PATH
这行代码重新设置了 PATH
环境变量的值。让我们逐个部分地解释:
-
PATH=
PATH
是一个环境变量,存储了一系列目录的路径,系统会依次在这些目录中查找可执行文件。当你在终端中输入一个命令时,shell 根据这些路径来寻找并执行对应的程序。=
用于给变量赋值。在这行代码中,我们更新了PATH
变量的值。
-
$JAVA_HOME/bin
$JAVA_HOME
是一个变量,存储了当前 Java 安装目录的路径。在这段代码中,它被设置为JAVA_HOME_8
,指向 Java 8 的安装路径。/bin
是一个相对路径,表示我们要访问 JAVA_HOME 目录下的bin
子目录,该目录包含了所有与 Java 相关的可执行文件,例如java
和javac
。- 当
JAVA_HOME
被正确设置时,$JAVA_HOME/bin
的实际值可能为/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin
。
-
:$PATH
:
是路径分隔符。在 UNIX 和类 UNIX 系统中,环境变量PATH
中的各个路径是用冒号分隔的。$PATH
表示当前 PATH 变量的值。:$PATH
表示我们要把当前的PATH
内容追加到新的PATH
变量值之后。
总结一下,这行代码的作用是:
- 将 Java 安装目录下的
bin
文件夹添加到PATH
的开头。这样能确保运行java
、javac
等命令时,优先使用当前配置的 JDK。 - 保留先前的
PATH
内容,确保系统的其他命令仍然可以被正常调用。
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
CLASSPATH
用于定义 Java 在运行时和编译时搜索类文件的路径。
tools.jar
和dt.jar
是 JDK 中的库,tools.jar
包含用于编译和运行 Java 应用程序的工具,而dt.jar
通常和图形界面构建有关。
export PATH
和 export CLASSPATH
- 类似于
export JAVA_HOME
, 这些export
命令将已设置的PATH
和CLASSPATH
环境变量对终端中运行的所有子进程可用。 - 确保命令行程序和 Java 程序可以使用这些变量中配置的路径和库。
编写配置项
1.在终端中,打开.zshrc文件
open .zshrc
2.将刚才的配置项粘贴到文件中
3.在终端中,使.zshrc文件生效
source ~/.zshrc
切换JDK
在终端中,查看一下我们的JDK版本
java -version
1.在终端中,打开.zshrc文件
open .zshrc
2.修改JAVA_HOME的值
export JAVA_HOME=$JAVA_HOME_17
3.在终端中,使.zshrc文件生效
source ~/.zshrc
再查看一次,发现已经切换成功了
标签:MacOS,Java,jdk,JDK,切换,PATH,HOME,JAVA From: https://blog.csdn.net/m0_71931019/article/details/143873505