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
I полагаю , что является типичным местом для переменной среды JAVA_HOME.Однако, глядя на путь, на который указывает Java-бин, вы заметите, что местоположение отличается.JAVA_HOME/bin
указывает на местоположение в /Library
, в то время как which java
указывает на местоположение в System/Library
Я понимаю, что есть общее правило в вычислениях Mac, которое гласит, что / Системные ресурсы - это базовые настройки компьютера, которые не должны быть обезьяньимис и что ресурсы / Library предназначены для установленного пользователем и управляемого программного обеспечения, но я не понимаю, почему у меня точно такой же исполняемый файл хранится в двух местах.
Мой вопрос: почему одно и то же программное обеспечение установлено в двух разных местах и почему JAVA_HOME/bin
указывает на один двоичный файл, а which java
указывает на другой?
Ресурсы, которые я использовал перед запросом:
Что хранит папка Mac OS / Library?
Где находится Oracle (Sun's) JDK / JRE установлен на Mac OS X 10.8 Mountain Lion?