Несколько исполняемых файлов Java на новой машине - PullRequest
0 голосов
/ 04 июня 2018

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?

1 Ответ

0 голосов
/ 04 июня 2018

Этот вопрос является дубликатом, и ответ приходит от пользователя bdash, который заслуживает всяческих похвал за ответы в полной и четкой форме.Спасибо Навину Кумару, который предоставил этот указатель.Для полного ответа перейдите по ссылке:

Понимание Java Oracle на Mac

Краткий ответ для людей, приходящих на эту страницу из Google, заключается в том, что элементы в / System / Library являютсязаглушки, а не настоящий исполняемый файл Java.Истинное местоположение JDK - это то, что указано в / usr / libexec / java_home.

...