В чем причина существования переменной среды JAVA_HOME?
Многим Java-приложениям требуется установить переменную JAVA_HOME env. Какова цель этой переменной?
9 ответов
Цель состоит в том, чтобы указать, где установлена Java. $JAVA_HOME/bin/java
должен выполнить среду выполнения Java.
Переменные среды - это строки, содержащие информацию, такую как диск, путь или имя файла.
Переменная среды JAVA_HOME указывает на каталог, в котором на вашем компьютере установлена среда выполнения Java (JRE).
Согласно @dirai здесь JAVA_HOME
используется не самой Java, а некоторыми сторонними инструментами, такими как, например, Apache Tomcat. Однако большинство приложений будут работать без установки этой переменной, но некоторые могут показывать неожиданное поведение.
Когда вы запускаете Java-программу, вам нужно сначала запустить JVM, обычно это выполняется с помощью запуска исполняемого файла, в Windows это java.exe. Вы можете получить это многими способами, например, просто указав полный путь:
C:\somedir\bin\java.exe
или может иметь это на вашем пути.
В качестве аргументов командной строки вы указываете некоторые файлы классов или файлы Jar, содержащие файлы классов, которые являются вашей программой. Но этого недостаточно, сам java.exe нуждается в различных других ресурсах, не в последнюю очередь во всех библиотеках Java. Установив переменную среды JAVA_HOME, вы указываете, где находится JRE и, следовательно, все эти ресурсы времени выполнения. Вы должны убедиться, что конкретный Java, который вы выполняете, соответствует настройке JAVA_HOME.
Вам также может понадобиться поставить JAVA_HOME\bin
рано на вашем пути, так что если java.exe
порождает свою копию (например, для компиляции JSP), выбирает правильную версию.
JAVA_HOME
переменная среды
Он должен быть настроен на другую операционную систему. Проверьте следующие ссылки.
Также смотрите здесь для получения дополнительной информации.
JAVA_HOME
позволяет запустить любую из нескольких установок Java. Даже если у вас есть /usr/lib/jvm/java-1.8.0/bin/java
во-первых, в вашей PATH полезно иметь возможность сказать JAVA_HOME=/usr/lib/jvm/java-1.5.0
и иметь "java" по умолчанию, с которым вы запускаете программы, вместо этого используйте другую, как параметр среды. Это позволяет программисту использовать необходимую ему Java, даже если она не установлена в обычном системном расположении, и тестировать или обеспечивать обратную совместимость с этой альтернативной версией. И это не уязвимо для сброса в PATH другой установленной программой, такой как обновление основной версии для самой java.
Чтобы понять назначение переменной среды, вам нужно сначала понять, какие программы ищут и считывают значение этой переменной. Некоторые примеры: Apache Tomcat, Apache Maven, Gradle, Jenkins и т. д. Если вы заметили, большинство из них являются инструментами разработки, и поэтому в основном они указывают на JDK вместо JRE.
Java-приложения, ориентированные на потребителя, не читают переменную, и им просто нужно знать, где находится JVM, и поэтому местоположение JVM (каталог) необходимо добавить в переменную. Это делается автоматически при установке программного обеспечения Java. Всякий раз, когда вы пытаетесь запустить приложение Java, дважды щелкнув приложение или через командную строку, ваша операционная система читаетPATH
переменная для поиска и запуска JVM, и она не ищетJAVA_HOME
переменная.
JAVA_HOME используется в MacOS для определения того, какую JRE использовать, когда вы пытаетесь запустить Java, Javac и т. д. Исполняемый файл Java в PATH — это просто прокси-сервер, который затем запускает Java из JAVA_HOME.
JAVA_HOME используется для установки среды, которая позволит вам запускать Java-программы на вашем компьютере или ПК после установки JDK(Java Development Kit)