Я хотел бы знать то, что является JAVA_HOME. Где я устанавливаю путь javac.exe и java.exe. Это находится в переменных среды. Когда я компилирую программу Java от командной строки, как JVM находит javac.exe
?
JVM не находит java.exe
. Он даже не называет его. java.exe
вызывается операционной системой (в данном случае Windows).
JAVA_HOME
- это просто конвенция, обычно используемая Tomcat, другими серверами приложений Java EE и инструментами сборки, такими как Gradle
, чтобы найти, где живет Java.
Важным, с Вашей точки зрения, является то, что каталог Java /bin
находится на Вашем PATH
, так что Windows может найти инструменты .exe
, которые поставляются с JDK: javac.exe
, java.exe
, jar.exe
и др.
Командная строка не использовала бы JAVA_HOME для поиска javac.exe, она использовала бы PATH.
JAVA_HOME - это переменная окружения (в терминологии Unix) или переменная PATH (в терминологии Windows). Многие хорошо работающие Java-приложения (для запуска которых необходим JDK/JRE) ищут переменную JAVA_HOME в том месте, где может быть найден компилятор/интерпретатор Java.