【发布时间】:2018-11-13 06:27:56
【问题描述】:
TLDR;为什么 brew/cask(甚至可能是本机安装程序)为 java 安装多个可执行文件?
系统数据:
MacOS 10.13 / High Sierra
我正在设置一台新的开发机器,在安装 java 之前运行以下命令:java 并被告知找不到二进制文件。
从这里我跑了brew cask install java。此时 java 变得可执行并运行which java 为我提供了 usr/bin/java 的路径。不出所料,这个位置是指向
/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 计算中有一条通用规则,即/System 资源是基本的机器设置,不应该被蒙混过关并且 /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?
【问题讨论】:
-
我的猜测 - 不是 Mac 用户,但之前不得不在 Mac 上处理过这个问题 - 这就是 Mac 必须配置为使用 Java 运行的方式。这是一种皇家的颈部疼痛。
-
@NaveenKumar 非常感谢。这完全是重复的,您的第二个链接回答了我的问题。
标签: java macos macos-high-sierra java-home homebrew-cask