macOS是否自带带Java环境?
macOS 是否自带 Java 环境?
macOS 不自带完整的 Java 开发环境,但系统会预装一个 java 占位符工具位于/usr/bin/java
,用于检测是否安装了 Java。如果你尝试运行 java 而没有安装 Java,会出现如下提示:No Java runtime present, requesting install.
macOS 系统会引导你下载和安装一个基本的 Java 运行时环境(JRE),以满足运行 Java 应用程序的需求,但这不是完整的开发环境(如 JDK)。
macOS 是如何管理 Java 的?
macOS 使用一种目录结构和工具来管理多个 Java 版本。具体机制包括:- Java 虚拟机目录
所有安装的 Java 版本都放置在以下目录中:每个 Java 版本都有一个独立的子目录,例如:/Library/Java/JavaVirtualMachines/
/Library/Java/JavaVirtualMachines/jdk-17.0.8/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-20.0.2/Contents/Home - 系统工具
/usr/libexec/java_home
macOS 提供了一个系统工具/usr/libexec/java_home
,用于动态管理和查找已安装的 Java 版本。
默认行为:返回当前默认的 Java 安装路径。输出示例:/usr/libexec/java_home
列出所有已安装的 Java 版本:/Library/Java/JavaVirtualMachines/jdk-17.0.8/Contents/Home
输出示例:/usr/libexec/java_home -V
选择特定版本:通过参数Matching Java Virtual Machines (2):
17.0.8, x86_64: "Java SE 17" /Library/Java/JavaVirtualMachines/jdk-17.0.8/Contents/Home
20.0.2, x86_64: "Java SE 20" /Library/Java/JavaVirtualMachines/jdk-20.0.2/Contents/Home-v
指定需要的 Java 版本路径,例如:输出示例:/usr/libexec/java_home -v 17
/Library/Java/JavaVirtualMachines/jdk-17.0.8/Contents/Home
- 使用
JAVA_HOME
环境变量
通过JAVA_HOME
配置默认使用的 Java 版本。例如:export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
- Java 虚拟机目录
/usr/libexec/java_home -V 是什么?
/usr/libexec/java_home
是 macOS 自带的工具,专门用于管理已安装的多个 Java 版本。-V
参数表示列出所有已安装的 Java 虚拟机及其详细信息,包括版本号、架构和安装路径。
作用包括:- 列出当前系统上所有可用的 Java 安装。
- 为用户选择默认的 Java 版本路径。
- 动态切换不同的 Java 版本。
它主要服务于开发者,在需要同时管理多个 Java 版本时特别有用。
如何管理 macOS 上的 Java?
- 安装 Java
使用 Oracle JDK、OpenJDK 或其他分发版本(如 Adoptium、Zulu 等)安装新的 Java。
安装路径默认在/Library/Java/JavaVirtualMachines/
。 - 切换 Java 版本
动态切换版本:永久切换版本:将上述命令加入export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH~/.zshrc
或~/.bash_profile
。 - 卸载 Java
删除对应版本的目录:sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.0.8
- 验证 Java 配置
检查当前默认 Java 版本:查看java -version
JAVA_HOME
的路径:echo $JAVA_HOME
- 安装 Java
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Time'S Blog!