首页 > 编程语言 >Mac 安装 Java

Mac 安装 Java

时间:2024-07-06 21:20:32浏览次数:20  
标签:Java jdk panminxiang Library Mac java 安装

Mac 自 macOS 10.12 Sierra 后不在自带 jdk 环境,但是保留了 java 命令(/usr/bin/java)

panminxiang@Mac ~ % which java
/usr/bin/java

测试下 java 是否正常

panminxiang@Mac ~ % java
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

panminxiang@Mac ~ % /usr/libexec/java_home
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

提示说缺少 jre 环境,jre 在 jdk 中,也就是需要下载 jdk

下载地址:
jdk21:https://www.oracle.com/java/technologies/downloads/#jdk21-mac
jdk8:https://www.oracle.com/java/technologies/downloads/#java8-mac (需要登录 oracle)

下载文件名:
jdk21:jdk-21_macos-aarch64_bin.dmg
jdk8:jdk-8u411-macosx-aarch64.dmg

安装 jdk21,安装完成后

panminxiang@Mac ~ % java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)
panminxiang@Mac ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    21.0.3 (arm64) "Oracle Corporation" - "Java SE 21.0.3" /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
panminxiang@Mac ~ %

接着安装古早的 jdk8

安装完成后:

panminxiang@Mac ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    21.0.3 (arm64) "Oracle Corporation" - "Java SE 21.0.3" /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
    1.8.411.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_411 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

jdk8 携带了 java applet,系统会多出许多和 applet 相关的东西
系统会多出:

panminxiang@Mac Internet Plug-Ins % pwd
/Library/Internet Plug-Ins
panminxiang@Mac Internet Plug-Ins % ls
JavaAppletPlugin.plugin

panminxiang@Mac PreferencePanes % pwd
/Library/PreferencePanes
panminxiang@Mac PreferencePanes % ls
JavaControlPanel.prefPane


panminxiang@Mac Oracle % pwd
/Library/Application Support/Oracle
panminxiang@Mac Oracle % ls
Java

panminxiang@Mac Oracle % pwd
/Users/panminxiang/Library/Application Support/Oracle
panminxiang@Mac Oracle % ls
Java

java 真正安装的目录

panminxiang@Mac JavaVirtualMachines % pwd
/Library/Java/JavaVirtualMachines
panminxiang@Mac JavaVirtualMachines % ls
jdk-1.8.jdk	jdk-21.jdk
panminxiang@Mac ~ % java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)

当前没有配置 $JAVA_HOME,则 java 命令来自于 /usr/libexec/java_home 的默认指向,即/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home. /usr/libexec/java_home 默认指向版本最高的 jdk 路径。

切换 jdk

目前安装了以下版本:

panminxiang@Mac ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    21.0.3 (arm64) "Oracle Corporation" - "Java SE 21.0.3" /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
    17.0.11 (arm64) "Oracle Corporation" - "Java SE 17.0.11" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    1.8.411.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_411 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

配置环境变量
~/.zshrc 文件内容


# 感谢 /usr/libexec/java_home 工具,能让我轻松获不同 jdk 的 JAVA_HOME
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8.0)
export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
export JAVA_21_HOME=$(/usr/libexec/java_home -v21)

# 默认 jdk8
export JAVA_HOME=$JAVA_8_HOME

export CLASS_PATH=$JAVA_HOME/lib

# 加入到 $PATH 中
export PATH=$PATH:$JAVA_HOME/bin

# 命令别名,轻松切换 jdk
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk17="export JAVA_HOME=$JAVA_17_HOME"
alias jdk21="export JAVA_HOME=$JAVA_21_HOME"

标签:Java,jdk,panminxiang,Library,Mac,java,安装
From: https://www.cnblogs.com/bibiafa/p/18287929

相关文章

  • [Java][设计模式]
    代理模式PROXY静态代理定义一个代理规范,规定代理和目标对象实现同样的方法举个例子,银行柜员和银行都要有取钱的方法,我们才能通过银行柜员去取银行的钱publicinterfaceProxy{voidwithdraw();}publicclassBankimplementsProxy{@Overridepublicvoid......
  • 第一次学习Java的碎碎念
    2024年夏新的学习开始了;今天做了什么?在B站上收藏了黑马程序员学习Java的教学视频,观看了几篇入门教程,暂时学会了如何打开CMD,以及几个常见的CMD命令,例如盘符名称:、dir、cd目录、cd..、cls、exit等等,做了一个练习(利用cmd打开qq),学会了如何把应用程序的路径记录在电脑的环境变量中,使......
  • Java反射与Fastjson的危险反序列化
    Preface在前文中,我们介绍了Java的基础语法和特性和fastjson的基础用法,本文我们将深入学习fastjson的危险反序列化以及预期相关的Java概念。什么是Java反射?在前文中,我们有一行代码ComputermacBookPro=JSON.parseObject(preReceive,Computer.class);这行代码是什么意......
  • java09
    类与对象的关系对象是具体的实例需要通过new来执行类是一种抽象的概念我们在写程序是最好只要有一个main方法构造器构造器实例化可以给属性一个初始值,new的本质是在调用构造器构造器也分为有参构造和无参构造,无参构造有时候很重要,因为在使用有参构造是,用户不一定会给与参数......
  • gdb安装调试,多系统下的安装使用(Ⅳ)
    1.gdb是什么?为什么要熟悉gdb调试?         gdb(GNU调试器)是一个强大的调试工具,允许开发者在程序运行时检查和修改变量的值,单步执行代码,设置断点,以及查看程序的状态。可以比较偏激的说如果是关注于linux下的开发和研究,基本上离不开gdb调试的。2.在各平台下的gdb下载......
  • JAVA零基础小白自学日志——第八天
    文章目录1.封装2.变量的作用域3.构造函数今日提要:封装(其实说白了,封装就是对访问范围的限制,不用因为名字就觉得高大上了)哦,对了,还要顺便讲个构造函数我在两天的学习里都提到了封装,而且是很严肃的,那你就应该知道这个封装对于Java程序非常重要;把昨天最后一个狗狗的......
  • JAVA零基础小白自学日志——第七天
    文章目录一、类1.类名2.这是啥东西?虽然在类里,但是不在构造方法里面,也不在语句块里,它是谁?它要干啥?3.方法二、对象(重头戏来喽)1.类与对象的关系2.类不是对象,对象由类构造3.类和对象到底在程序里是什么样的今日提要:类和对象(什么?你说你没对象!?去去去,别打岔,我这对象不是你......
  • SPSS 27安装包免费下载及安装教程
    下载链接:https://fcnkteazjvur.feishu.cn/docx/DnqLdP7LioyivRxgbACcW4U6n8g1.把资源从网盘下载到电脑上面,然后右键选择解压到当前文件夹(7z、zip、exe均为压缩格式)2.找到解压后的文件SPSS27,双击打开文件夹。3.右键点击SPPS2764bit.exe,选择以管理员身份运行。4.点击......
  • Mac的文件系统
    Tips重启访达:option+点按选择重新开启推荐用列表查看文件:command+2显示打开路径:option+command+P拷贝文件路径:右键选中>option推出应用:command+Q剪切文件:原文件command+c目标地址command+option+v查找:command+f根目录SystemApplicationUserL......
  • python和pycharm安装
    一、python和pycharm的作用Python是一种跨平台的计算机程序语言。Python是我们进行项目开发而使用的一门计算机语言,通俗来说就是编写代码,编写完代码之后,我们就需要运行,不然代码是死的,机器是无法识别的,这时我们需要运行Python代码的运行环境和工具。PyCharm带有一整套......