MAC怎么安装Java环境_MAC配置JDK环境变量教程【程序员指南】
技术百科
尼克
发布时间:2026-01-21
浏览: 次 macOS上Java环境配置需先下载安装JDK(推荐Temurin或Oracle LTS版),再通过zshrc配置JAVA_HOME与PATH,最后验证java/javac版本及路径。
如果您在 macOS 系统上运行 Java 应用程序或开发 Java 项目,但终端提示 command not found: java 或 java version not recognized,则说明系统尚未正确安装 JDK

一、下载并安装 JDK
macOS 不再预装 Oracle JDK,需手动获取官方支持的 JDK 版本。推荐使用 LTS 版本(如 JDK 17 或 JDK 21),确保兼容性与长期维护支持。
1、访问 https://adoptium.net/(Eclipse Temurin 官方站点)或 https://www.oracle.com/java/technologies/javase/jdk-downloads.html;
2、选择适用于 macOS 的 ARM64(Apple Silicon) 或 x64(Intel) 对应架构的 .dmg 安装包;
3、双击下载的 .dmg 文件,运行安装向导,按提示完成 JDK 安装;
4、安装完成后,在终端执行 /usr/libexec/java_home -V,确认 JDK 路径已注册并列出版本信息。
二、配置 JAVA_HOME 环境变量(zsh 方式)
macOS Catalina 及后续版本默认使用 zsh 作为登录 shell,环境变量需写入 ~/.zshrc 文件,使每次启动终端时自动加载。
1、在终端中执行 nano ~/.zshrc 打开配置文件;
2、在文件末尾新增一行:export JAVA_HOME=$(/usr/libexec/java_home -v 17)(将 “17” 替换为您实际安装的 JDK 主版本号,例如 21);
3、另起一行添加:export PATH=$JAVA_HOME/bin:$PATH;
4、按 Control + O 保存,Control + X 退出 nano;
5、执行 source ~/.zshrc 立即生效配置。
三、配置 JAVA_HOME 环境变量(shell 脚本方式)
为避免硬编码版本号导致升级后失效,可采用动态解析方式读取最新可用 JDK,提升配置鲁棒性。
1、执行 echo 'export JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshrc;
2、执行 echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc;
3、执行 source ~/.zshrc 加载变更;
4、验证是否生效:输入 echo $JAVA_HOME,输出应为类似 /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home 的路径。
四、验证 Java 安装与环境变量
完成上述任一配置方式后,必须通过多条命令交叉验证,确保 java、javac 命令可调用且指向正确 JDK 实例。
1、执行 java -version,确认输出包含已安装 JDK 的版本号及厂商信息;
2、执行 javac -version,确认编译器版本与 java 一致;
3、执行 which java,输出应为 /usr/bin/java(该路径由系统符号链接指向 $JAVA_HOME/bin/java);
4、执行 ls -l $(which java),确认其软链接最终指向 $JAVA_HOME/bin/java。
五、切换多版本 JDK(可选)
当系统中存在多个 JDK 版本时,可通过 /usr/libexec/java_home 工具快速切换默认版本,无需反复修改配置文件。
1、列出所有已安装 JDK:/usr/libexec/java_home -V;
2、查看当前默认路径:/usr/libexec/java_home;
3、临时切换至指定版本(当前终端有效):export JAVA_HOME=$(/usr/libexec/java_home -v 21);
4、永久切换需编辑 ~/.zshrc 中的 JAVA_HOME 行,并重新 source。
# 可选
# 多个
# 为您
# 可通过
# 适用于
# 您在
# 推荐使用
# app
# 双击
# mac
# 配置文件
# 工具
# https
# 环境变量
# macos
# java
# html
# 编码
# 架构
# echo
# apple
# 多条
# oracle
# eclipse
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- 如何在Golang中使用time处理时间_Gola
- 如何用::实现工具类方法调用_php静态工具类设计
- Windows Defender扫描失败怎么办_安
- c++ unordered_map怎么用 c++哈
- Linux如何申请SSL免费证书_Linux下Ce
- Python多线程使用规范_线程安全解析【教程】
- Win11怎么关闭搜索历史_Win11清除设备上的
- Go语言中slice追加操作的底层共享机制解析
- 如何使用Golang处理静态文件缓存_提高页面加载
- Python文件管理规范_工程实践说明【指导】
- Win11怎么清理C盘下载文件夹_Win11清理下
- 如何在Golang中处理云原生事件_使用Event
- 如何在JavaScript中动态拼接PHP的bas
- 如何提升Golang JSON序列化性能_Gola
- c++ reinterpret_cast怎么用 c
- Win10如何卸载微软拼音输入法 Win10只保留
- php8.4如何调用com组件_php8.4win
- 如何更改Windows资源管理器的默认启动位置?(
- Python网页解析流程_html结构说明【指导】
- 如何在Mac上搭建Golang开发环境_使用Hom
- Python列表推导式与字典推导式教程_简化代码高
- Win10系统映像怎么恢复 Win10使用系统映像
- 如何使用Golang table-driven基准
- 如何在Golang中处理数据库事务错误_回滚和日志
- Win11怎么开启远程桌面_Win11系统远程桌面
- Win11如何设置自动关机 Win11定时关机命令
- Windows10系统怎么查看硬盘健康_Win10
- Mac如何使用听写功能_Mac语音输入打字【效率技
- 如何在 ACF 中正确更新嵌套多层 Group 字
- Win11怎么清理C盘OneDrive缓存_Win
- php怎么捕获异常_trycatch结构处理运行时
- LINUX怎么设置系统语言_LINUX修改中文环境
- Python性能剖析高级教程_cProfileLi
- 如何使用Golang实现微服务事件驱动_使用消息总
- php修改数据怎么批量改状态_批量更新status
- C++如何使用std::async进行异步编程?(
- MAC怎么使用表情符号面板_MAC Emoji快捷
- PHP的Workerman对架构扩展有啥帮助_应用
- 如何在Golang中写入JSON文件_保存结构体数
- 如何优化Golang程序CPU性能_Golang
- Win11怎么开启空间音效_Windows11耳机
- Python脚本参数接收_sys与argparse
- php嵌入式多设备通信怎么实现_php同时管理多个
- Win11用户账户控制怎么关_Win11关闭UAC
- Windows10如何查看保存的WiFi密码_Wi
- Win11怎么快速锁屏_Win11一键锁屏快捷键W
- php下载安装后memory_limit怎么设置_
- Windows10电脑怎么设置电源按钮_Win10
- Win10系统怎么查看端口状态_Windows10
- 如何关闭Win10自动更新更新_Win10系统自动

QQ客服