Что мне нужно для переменных среды JAVA_HOME
, M2
и M2_HOME
, если пути, которые должны туда идти, уже добавлены к моей переменной PATH?
Назначение переменных JAVA_HOME, M2 и M2_HOME
Ответ 1
JAVA_HOME
должен ссылаться на каталог, в котором установлена Java, которую вы хотите использовать. Эта переменная часто используется различными скриптами, поэтому ее рекомендуется определить. JAVA_HOME
не следует добавлять к PATH
. Вы должны добавить JAVA_HOME/bin
, чтобы иметь возможность запускать команды из этого каталога без указания конкретного пути.
M2_HOME
является домом для Maven. Он используется script mvn
(или mvn.bat
в Windows).
Ответ 2
Домашние пути (JAVA_HOME
, M2_HOME
) не являются обязательными, но хорошими. Одно из преимуществ:
Он помогает вам вносить изменения в одном месте, а не искать вас в переменной PATH
при установке следующей версии Java или Maven. Например, переменная среды JAVA_HOME
ниже - это одно место, которое мне нужно изменить, когда я обновляю его до Java Development Kit 1.8.
Ответ 3
Я думаю, вы не понимаете понятия переменной окружения. Для начала читайте здесь → http://en.wikipedia.org/wiki/Environment_variable
PATH
- это одна переменная среды, которая хорошо известна во многих операционных системах (или оболочках). И это означает, что если вы введете имя программы без полного пути, операционная система (или оболочка) попытается найти все каталоги, указанные в переменной PATH
.
Другие программы имеют разные зависимости от среды. Некоторые из них указывают, какие переменные среды им нужны для правильной работы.
JAVA_HOME
используется многими приложениями на Java для определения места установки Java Runtime Environment (JRE).
M2_HOME
используется Maven, и снова он сообщает программе, где можно найти установку Maven.
PATH
не подходит для этой цели, поскольку может содержать много каталогов, не связанных с Java или Maven.
Ответ 4
Переменная PATH используется для поиска приложений (исполняемых файлов и скриптов) и библиотек DLL в Windows. Если вы наберете "mvn", то PATH используется для поиска исполняемого файла или script этого имени. Однако, поскольку script найден в местоположении, это не означает, что приложение установлено в этом каталоге. Самый простой пример для описания - тот, который существует в UNIX. У вас может быть символическая ссылка из /usr/local/bin/mvn на место, где фактически установлена maven. Другие примеры/причины могут быть даны.
Переменные среды используются приложением, чтобы знать, где искать другие ресурсы, которые могут понадобиться приложению.
Например, JAVA_HOME указывает на каталог, в котором находится ваш JDK. Когда JAVA запускается, это приложение знает, что другие ресурсы могут быть найдены относительно каталога JAVA_HOME.
Это позволяет приложению, например, C:\Windows\System32\java, существовать в одном каталоге, но установка JDK будет находиться где-то в другом месте.
То же самое относится к каталогу M2_HOME, который указывает на верхний каталог, где MAVEN "установлен" (или распакован).
Каталог M2 указывает на приложение maven (mvn), где можно найти необходимые хранилища maven. Значение по умолчанию (в UNIX) равно $HOME/.m2, но вам может не понадобиться ваш репозиторий, поэтому вы можете указать другое местоположение, используя переменную среды M2, и maven будет использовать это местоположение вместо стандартного.