Нам нужно провести различие между двумя переменными среды, которые обсуждаются здесь взаимозаменяемо. Одним из них является переменная JAVA_HOME . Другой является переменная Path . Любой процесс, который ссылается на переменную JAVA_HOME, ищет путь поиска в JDK, а не в JRE. Использование переменной JAVA_HOME не предназначено для самого компилятора Java. Компилятор знает свое местоположение. Переменная предназначена для другого программного обеспечения, чтобы легче найти компилятор. Эта переменная обычно используется программным обеспечением IDE для компиляции и сборки приложений из исходного кода Java. В отличие от этого интерпретатор CMD в Windows и многие другие программы первого и стороннего производителя ссылаются на переменную Path, а не на переменную JAVA_HOME.
Вариант использования 1: Компиляция из CMD
Так, например, если вы не используете какое-либо программное обеспечение IDE, и вы просто хотите иметь возможность компилировать из CMD, независимо от вашего текущего рабочего каталога, тогда вам нужно правильно установить переменную Path. В вашем случае вам даже не нужна переменная JAVA_HOME. Поскольку CMD использует Path, а не JAVA_HOME, чтобы найти компилятор Java.
Вариант использования 2: Компиляция из IDE
Однако, если вы используете , используя какое-то программное обеспечение IDE, вам нужно в первую очередь ознакомиться с документацией. Это может потребовать установки JAVA_HOME, но может также использовать другое имя переменной для той же цели. На протяжении многих лет стандартом де-факто был JAVA_HOME, но это не всегда так.
Вариант использования 3: Компиляция из IDE и CMD
Если в дополнение к программному обеспечению IDE вы также хотите иметь возможность компилировать из CMD, независимо от вашего текущего рабочего каталога, то при добавлении в переменную JAVA_HOME вам также может понадобиться добавить JDK путь поиска к переменной Path.
JAVA_HOME и Path
Если ваша проблема связана с компиляцией Java, вы хотите проверить переменную JAVA_HOME и Path (где это применимо). Если ваша проблема связана с запуском Java-приложений, вы хотите проверить переменную Path.
Переменная пути используется универсально во всех операционных системах. Поскольку он определяется системой и потому что это переменная по умолчанию, которая используется для поиска JRE, почти никогда не возникает проблем с запуском Java-приложений. Особенно в Windows, где установщики программного обеспечения обычно все настраивают для вас. Но если вы устанавливаете вручную, самое безопасное - это вообще пропустить переменную JAVA_HOME и просто использовать переменную Path для всего, как для JDK, так и для JRE. Любая последняя версия программного обеспечения IDE должна быть способна подобрать и использовать ее.
Symlinks
Символьные ссылки могут предоставить еще один способ ссылки на путь поиска JDK путем совмещения одной из существующих переменных среды.
Я не уверен насчет предыдущих версий Oracle / Sun JDK / JRE, но по крайней мере установщик для jdk1.8.0_74 добавляет путь поиска C:\ProgramData\Oracle\Java\javapath
к переменной Path, и , который он помещает это в начале строкового значения. Этот каталог содержит символические ссылки на java.exe, javaw.exe и javaws.exe в каталоге JRE.
Таким образом, по крайней мере с Java 8 JDK и, по-видимому, с автономным Java 8 JRE, не требуется конфигурировать переменные среды для JRE. Пока вы используете установочный пакет для его настройки. Однако в вашей установке Windows могут быть различия. Обратите внимание, что Oracle JRE поставляется в комплекте с JDK.
Если вы когда-нибудь обнаружите, что ваша конфигурация Java JDK использует неверную версию компилятора или она работает волшебным образом, без явного определения (без чтения заклинания), то у вас может быть символическая ссылка где-то в переменные вашей среды. Поэтому вы можете проверить наличие символической ссылки.