【问题标题】:Purpose of the JAVA_HOME, M2, and M2_HOME variablesJAVA_HOME、M2 和 M2_HOME 变量的用途
【发布时间】:2013-04-19 20:29:25
【问题描述】:

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

【问题讨论】:

  • 我不明白。你能试着详细说明一下吗?
  • 它们用于其他应用程序来查找您的 java(或 M2)安装,以便比较版本的兼容性等。
  • 您如何特别地在 PATH 变量中找到 JAVA_HOME、M2 和 M2_HOME?是的,其他需要这些特定信息的程序将面临完全相同的问题。
  • 它们没有附加到系统路径中。它们由应用程序使用,并且可以用作系统路径的部分
  • 我将 jdk/bin 和 maven/bin 的路径添加到 PATH 变量。现在我可以从命令行运行 maven 命令并使用 java。 JAVA_HOME 和 M2_HOME 用什么?哪些程序会使用它们?

标签: java maven path


【解决方案1】:

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

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

【讨论】:

  • 奇怪的是为什么 mvn README 没有说明在安装过程中设置这个变量:(
  • @ACV, JAVA_HOME 是一个环境变量,与 JRE 相关。 Maven 是一个用 java 编写的构建工具。通常,我们并不期望使用特定技术或编程语言的每个软件产品都会在其 README 文件中解释该技术的基本要素。这就像期待您的电视手册将包含对欧姆定律的介绍。
  • 很有趣,但据我所知,“欧姆定律”出现在 maven 的旧版本中:“4) 确保 JAVA_HOME 设置为 JDK 的位置”www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/… 那么为什么会这样删除了?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

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

    【讨论】:

      【解决方案4】:

      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 将使用该位置而不是默认位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-18
        • 2018-05-15
        • 2015-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多