新机器上的多个 Java 可执行文件
Multiple Java Executables on New Machine
TLDR;为什么 brew/cask(或者甚至是本机安装程序)为 java 安装多个可执行文件?
系统数据:
MacOS 10.13 / 高山脉
我正在设置一台新的开发机器,在安装 java 运行 之前执行以下命令:java
并被告知找不到二进制文件。
我从这里 运行 brew cask install java
。此时 java 变得可执行并且 运行 which java
在 usr/bin/java 为我提供了一个路径。不出所料,这个位置是 link 到
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
出于好奇,我 运行:/usr/libexec/java_home
返回:
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
我相信 这是 JAVA_HOME 环境变量的典型位置。但是,当查看 java bin 指向的路径时,您会注意到位置不同。 JAVA_HOME/bin
指向 /Library
中的一个位置,而 which java
指向 System/Library
中的一个位置 我知道 Mac 计算中有一个通用规则说 /系统资源是基本的机器设置,不应该被修改,/Library 资源用于用户安装和管理的软件,但我不明白为什么我会在两个地方存储完全相同的可执行文件。
我的问题是,为什么同一个软件安装在两个不同的地方,为什么 JAVA_HOME/bin
指向一个二进制文件而 which java
指向另一个二进制文件?
提问前我使用的资源:
what does mac os /Library folder store?
Where is Oracle's (Sun's) JDK/JRE installed on Mac OS X 10.8 Mountain Lion?
这个问题是重复的,答案来自用户 bdash,他以完整而清晰的方式回答,值得称赞。感谢提供此指针的 Naveen Kumar。如需完整答案,请访问:
Understanding Oracle's Java on Mac
对于从 google 访问此页面的人来说,简短的回答是 /System/Library 中的项目是存根而不是真正的 java 可执行文件。 JDK 的真实位置是 /usr/libexec/java_home 暴露的位置。
TLDR;为什么 brew/cask(或者甚至是本机安装程序)为 java 安装多个可执行文件?
系统数据:
MacOS 10.13 / 高山脉
我正在设置一台新的开发机器,在安装 java 运行 之前执行以下命令:java
并被告知找不到二进制文件。
我从这里 运行 brew cask install java
。此时 java 变得可执行并且 运行 which java
在 usr/bin/java 为我提供了一个路径。不出所料,这个位置是 link 到
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
出于好奇,我 运行:/usr/libexec/java_home
返回:
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
我相信 这是 JAVA_HOME 环境变量的典型位置。但是,当查看 java bin 指向的路径时,您会注意到位置不同。 JAVA_HOME/bin
指向 /Library
中的一个位置,而 which java
指向 System/Library
中的一个位置 我知道 Mac 计算中有一个通用规则说 /系统资源是基本的机器设置,不应该被修改,/Library 资源用于用户安装和管理的软件,但我不明白为什么我会在两个地方存储完全相同的可执行文件。
我的问题是,为什么同一个软件安装在两个不同的地方,为什么 JAVA_HOME/bin
指向一个二进制文件而 which java
指向另一个二进制文件?
提问前我使用的资源:
what does mac os /Library folder store?
Where is Oracle's (Sun's) JDK/JRE installed on Mac OS X 10.8 Mountain Lion?
这个问题是重复的,答案来自用户 bdash,他以完整而清晰的方式回答,值得称赞。感谢提供此指针的 Naveen Kumar。如需完整答案,请访问:
Understanding Oracle's Java on Mac
对于从 google 访问此页面的人来说,简短的回答是 /System/Library 中的项目是存根而不是真正的 java 可执行文件。 JDK 的真实位置是 /usr/libexec/java_home 暴露的位置。