Зачем использовать $ JAVA_HOME или $ AIR_HOME вместо просто $ PATH? - PullRequest
0 голосов
/ 26 апреля 2019

Я знаю, что такое $JAVA_HOME, $AIR_HOME и т. Д., Я знаю, как их настроить. Фактически я настраиваю их в каждой виртуальной среде, которую когда-либо инициализирую для работы с Java или Adobe AIR, но я не понимаю, почему я должен это делать. Мой вопрос больше касается того, каковы будут последствия игнорирования $*_HOME переменных и просто использования двоичных файлов, предоставляемых системой (в $PATH).

Используется ли он для чего-либо, кроме поиска правильной версии двоичных файлов? Кажется, что приложения никогда не используют его для чего-либо еще, и ответственность за его доступность в $PATH несет ответственный за пакет, системный администратор и пользователь. Существуют удобные менеджеры виртуальных сред, которые позволяют пользователям легко переключаться между средами и выбирать сохраненную предустановку $PATH, которая указывает на правильную версию заданного двоичного файла для данного пользовательского сеанса. Хотя обычно можно написать перехватчики «onSwitch», которые устанавливают пользовательские переменные среды, это всегда требует дополнительной работы.

Предполагалось, что оно помогает разветвленному приложению запускать ту же версию двоичного файла, что и его родительский, но об этом уже позаботились, поскольку оба процесса должны запускать двоичный файл из $PATH, а $PATH наследуется дочерним процессом. от родителя.

В чем причина для разработчиков проектов, таких как Tomcat и Gradle или Adobe AIR, полагаться на переменные $*_HOME вместо того, что предоставляет $PATH? Откуда пришло это соглашение и почему оно до сих пор используется?

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Надеюсь, я правильно понял ваш вопрос.

Насколько я знаю, это из-за удобства и безопасности (?).

Например, допустим, у вас довольно длинный каталог java.C: \ Program Files \ a \ b \ c \ d \ e (x86) \ Java \ jre1.8.0_201, вы задаете путь, чтобы вы могли легко получить доступ к exe-файлам в папке 'bin'.Затем вы захотели получить доступ к exe-файлам в папке «bin1» Java, а затем вам нужно задать еще один длинный путь с точками с запятой, чтобы различать их.И тогда вы хотели добавить папку «bin2» в путь.Это займет не только ваше время, но вы можете ошибиться при наборе текста.(Мое чистое предположение. Я должен придумать лучшие примеры. Но сейчас не могу придумать ни одного.)

Устанавливая% JAVA_HOME%, удобно и безопаснее устанавливать переменные среды.Вы можете просто добавить% JAVA_HOME% bin% JAVA_HOME% bin1% JAVA_HOME% bin2 вместо ввода длинных путей.

Возможно, разные ОС имеют разные стили для установки путей.(Я полагаю) давным-давно, люди использовали это так со старой ОС, и, возможно, это стало своего рода соглашением или привычкой.(Я думаю, что $ JAVA_HOME появился, потому что людям было нелегко задавать пути раньше.)

У меня были такие же мысли, как и у вас, и мне нравится ваше любопытство и рассуждения, поэтому я хотел помочь вам своими ограниченными знаниями,Надеюсь, что мой поможет чуть-чуть.(Также хотелось бы, чтобы я понял ваш вопрос.)

1 голос
/ 26 апреля 2019

Полагаю, что пока вы запускаете только одно приложение или несколько приложений, которые полагаются на одну и ту же версию JDK / JRE, у вас все в порядке только с $ PATH. Но если у вас есть несколько приложений, использующих разные версии JDK / JRE, вам пригодятся переменные $ _HOME. Так, например, у вас может быть приложение JAVA 8 и устаревшее приложение, которое все еще использует JAVA 6, например, для запуска на одном компьютере, настроив их переменные $ _HOME по-разному.

у вас также могут быть проблемы с приложениями с открытым исходным кодом, которые полагаются на эти переменные среды, если они не установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...