25

如果应该去那里的路径已经附加到我的 PATH 变量中,我需要什么JAVA_HOMEM2M2_HOME环境变量?

4

4 回答 4

8

JAVA_HOME应参考您要使用的 Java 的安装目录。这个变量经常被各种脚本使用,所以建议定义它。JAVA_HOME本身不应添加到PATH. 您应该添加JAVA_HOME/bin能够在不指定具体路径的情况下从此目录运行命令。

M2_HOME是Maven的家。它由脚本mvn(或mvn.bat在 Windows 上)使用。

于 2013-04-25T19:41:35.910 回答
7

主路径 ( JAVA_HOME, M2_HOME) 不是强制性的,但很好。优点之一是:

它可以帮助您在一个地方进行更改,而不是在PATH安装下一版本的 Java 或 Maven 时在变量中搜索。例如JAVA_HOME,当我将其升级到 Java Development Kit 1.8 时,下面的环境变量是我需要更改的一个地方。

Windows环境变量窗口

于 2013-04-25T19:46:28.057 回答
5

我认为您不了解环境变量的概念。首先,请阅读此处-> http://en.wikipedia.org/wiki/Environment_variable

PATH是许多操作系统(或 shell)中众所周知的一个环境变量。它的意思是如果你输入一个没有完整路径的程序名,操作系统(或shell)将尝试搜索PATH变量中指定的所有目录。

其他程序对环境有不同的依赖关系。其中一些指定了它们需要哪些环境变量才能正常运行。

JAVA_HOME许多基于 Java 的应用程序使用它来定义 Java 运行时环境 (JRE) 的安装位置。

M2_HOME由 Maven 使用,它再次告诉程序在哪里找到 Maven 安装。

PATH不适合那个目的,因为它可能包含许多与 Java 或 Maven 无关的目录。

于 2013-04-25T19:50:11.933 回答
0

PATH 变量用于在 Windows 上查找应用程序(可执行文件和脚本)和 DLL。如果您键入“mvn”,则 PATH 用于查找具有该名称的可执行文件或脚本。然而,仅仅因为脚本是在某个位置找到的,并不意味着应用程序安装在该目录中。最容易描述的示例是存在于 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 将使用该位置而不是默认位置。

于 2016-08-31T22:00:36.210 回答