首页 > 其他分享 >MacOS如何安装配置多个JDK,并切换使用

MacOS如何安装配置多个JDK,并切换使用

时间:2024-11-20 21:48:38浏览次数:3  
标签:MacOS Java jdk JDK 切换 PATH HOME JAVA

由于JDK版本极快的更新速度,因此常常会出现不同项目需要的JDK不同情况,所以需要明白如何在操作系统安装配置多个JDK,本篇博客以MacOS举例。

提示:如果是M系列芯片,推荐下载arm版本

目录

概述

配置环境变量

JDK下载与安装的区别

了解配置项

编写配置项

切换JDK


概述

安装配置多个JDK一共三步:

  1. Oracle官网下载JDK
  2. 安装JDk
  3. 配置环境变量

实现多个JDK的关键是如何配置环境变量,是本文的重点,因此第一二步略过

配置环境变量

JDK下载与安装的区别

下载 JDK:

  • 过程: 这涉及从 Oracle 官方网站、OpenJDK 社区,或者其他提供商下载 JDK 的二进制分发包。这通常是一个 .dmg (Disk Image)、.tar.gz、或者像 .pkg 这样的安装包。
  • 本质: 下载只是将安装文件从网络传输到你的本地计算机,这一步只是在你的硬盘上存储了安装文件,并未进行任何系统级的修改。

安装 JDK:

  • 过程: 这一步包括运行实际下载的安装程序或按照下载 README 的指示进行解压和配置。安装过程通常会复制 JDK 文件到系统的特定目录(例如 /Library/Java/JavaVirtualMachines),以及更新相关的系统环境配置。
  • 本质: 安装步骤会把 JDK 添加到计算机的路径中,使其成为全局可用。它通常会在系统中注册这个 JDK,使得 Java 命令(例如 javajavac)可以在终端中全局访问。

简而言之:下载只是压缩包,安装包括解压与配置

了解配置项

先给大家看看配置项

#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 环境变量的值。让我们逐个部分地解释:

  1. PATH=

    • PATH 是一个环境变量,存储了一系列目录的路径,系统会依次在这些目录中查找可执行文件。当你在终端中输入一个命令时,shell 根据这些路径来寻找并执行对应的程序。
    • = 用于给变量赋值。在这行代码中,我们更新了 PATH 变量的值。
  2. $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
  3. :$PATH

    • : 是路径分隔符。在 UNIX 和类 UNIX 系统中,环境变量 PATH 中的各个路径是用冒号分隔的。
    • $PATH 表示当前 PATH 变量的值。
    • :$PATH 表示我们要把当前的 PATH 内容追加到新的 PATH 变量值之后。

总结一下,这行代码的作用是:

  • 将 Java 安装目录下的 bin 文件夹添加到 PATH 的开头。这样能确保运行 javajavac 等命令时,优先使用当前配置的 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 PATHexport 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

相关文章

  • IDEA如何找到在IDEA中下载jdk
    前言大家好,我是小徐啊。在使用IDEA开发java应用的时候,都是需要配置好jdk的环境的。当然,如果我们一开始,先安装好了jdk,那就不需要安装了。不然的话,我们也可以在IDEA中便捷的安装jdk。今天,小徐就来教大家如何在IDEA中安装jdk。如何下载jdk首先,点击下文件,项目结构选项。然后,在项......
  • JDK 23 安装
    一、下载JDKhttps://download.oracle.com/java/23/latest/jdk-23_windows-x64_bin.exe二、安装JDK                   三、配置环境变量1、WIN+R打开运行面板,输入sysdm.cpl打开系统属性                ​​​​​​​    ......
  • macOS系统的一些使用记录
    命令设置启动台图标数量设置#设置每行最多10个应用图标defaultswritecom.apple.dockspringboard-columns-int10#设置每页最多6行defaultswritecom.apple.dockspringboard-rows-int6#重建LaunchPad数据库defaultswritecom.apple.dockResetLaunchPad-boolT......
  • JDK21新增特性
    顺序集合(SequencedCollections)提供了几个新的接口,用于实现有序的集合。在没有提供有序集合操作之前,我们进行集合的序列操作一般如下FirstelementLastelementListlist.get(0)list.get(list.size()-1)Dequedeque.getFirst()deque.getLast()SortedSet......
  • 理解进程调度时机跟踪分析进程调度与进程切换的过程
    张晓攀+原创作品转载请注明出处+《Linux内核分析》MOOC课程https://mooc.study.163.com/course/1000029000实验八——理解进程调度时机跟踪分析进程调度与进程切换的过程一、理解Linux系统中进程调度的时机在Linux内核中,schedule()函数是核心的进程调度机制。它的主要作用是......
  • 必须了解常用的JDK版本及特性
    在一次面试的时候问到我感兴趣的技术,回答了JAVA,但被问到JDK,除了1.8,就一窍不通,感觉确实应该好好学习一下,至少常见的版本和常见的特性,可以没那么专业,没那么细致,但至少能说个一两句最喜欢的JDK版本我最喜欢JDK17,在这个版本有几点比较常见的特性,Switch语句的增强、字符块的成熟......
  • ✨✨✨2024年11月Navicat Premium最新版(17.1.5) MacOS版免费下载✨✨✨
    该版本为MacOS专用,最新稳定版,相比旧版本,性能更高、资源占用更小、修复了频繁崩溃的bug。navicat最新破解版本都需要关闭SIP,如何关闭可参考这篇文章NavicatPremium是一款非常强大的数据库管理工具,允许您在一个应用程序中同时连接到MySQL、SQLite、MongoDB、Oracle和Postgr......
  • Windows系统下载并配置JDK23(超详细!!!)
    一、下载JDK23下载JDK23可移步主页在上一篇文档中查看具体步骤......二、安装JDK231、双击安装包:        找到下载的JDK23安装包文件,双击打开。2、运行安装程序:        按照安装程序中的提示,点击“下一步”等按钮进行安装。        在选择安装......
  • 门控时钟-无毛刺的时钟切换
    一、问题假设存在这样的时钟控制模型:CLK1、CLK2以及系统时钟的频率与相位均不一致,我们希望在clk_sel=1时,输出CLK1,反之输出CLK2,CLK_SEL可以由系统时钟驱动,也可以由组合逻辑驱动。那么在这种情况下就会出现以下的“毛刺”问题:可以看到,在CLK_SEL的交界处,非常容易出现CLK_OUT时......
  • Charles抓取不到浏览器请求(macOS)解决方案
    一.Charlescharles抓包工具,通常使用默认的端口号:http:8888https:8443在安装好Charles后,默认情况下http代理服务器运行在8888端口,https服务器运行在8443端口二.解决方案:1.先把证书安装上下载证书后,打开macOS-【钥匙串访问】,选择证书,右键【显示简介】--【信任】中勾选始终信......