Maven安装问题:JAVA_HOME应该指向JDK而不是JRE?

Maven安装问题:JAVA_HOME应该指向JDK而不是JRE?,java,maven,unix,installation,Java,Maven,Unix,Installation,我是CS的新手,对UNIX/Bash vocab非常不熟悉 我目前正在尝试安装Maven,我复制粘贴旧的安装说明(版本号不正确)时犯了一些错误,现在整个过程都一团糟。我先是尝试按照网站上给出的说明进行操作,但没有成功,然后我又尝试了其他一些方法,现在我担心,按照不同的说明进行操作会让我陷入混乱 现在,如果我输入mvn-version,我会得到以下信息: JAVA_HOME环境变量定义不正确 运行此程序需要此环境变量 注意:JAVA_HOME应该指向JDK而不是JRE 最初,我的JAVA_HOME

我是CS的新手,对UNIX/Bash vocab非常不熟悉

我目前正在尝试安装Maven,我复制粘贴旧的安装说明(版本号不正确)时犯了一些错误,现在整个过程都一团糟。我先是尝试按照网站上给出的说明进行操作,但没有成功,然后我又尝试了其他一些方法,现在我担心,按照不同的说明进行操作会让我陷入混乱

现在,如果我输入
mvn-version
,我会得到以下信息:

JAVA_HOME环境变量定义不正确 运行此程序需要此环境变量 注意:JAVA_HOME应该指向JDK而不是JRE

最初,我的JAVA_HOME被设置为jdk install dir,这仍然给了我上面的错误消息。我尝试从Oracle重新下载jdk(13.0.1版),将该文件拖到我的主目录,然后解压缩。然后,我将JAVA_HOME设置为解压缩文件jdk-13.0.1.jdk,并更新了PATH变量。在这一切之后,我仍然收到同样的错误消息,我不知道该怎么办

作为参考,以下是一些相关环境变量的设置(我没有包括来自PATH的无关信息):


有一件事我很好奇:对于M2和M2_HOME变量,一个应该在我的主目录中(
/Users/allyson
),一个用于
/usr/local

$JAVA_HOME应该是一个完整路径,而不是目录名

scream@kafka1:~$ echo $JAVA_HOME
/opt/java/jdk-11.0.5/
scream@kafka1:~$

$JAVA_HOME应该是完整路径,而不是目录名

scream@kafka1:~$ echo $JAVA_HOME
/opt/java/jdk-11.0.5/
scream@kafka1:~$

好的,深呼吸,然后我们来看看。这些环境变量中的每一个都有一个目的,一旦您了解了这些目的是什么,这就更有意义了。混合教程不一定是一个问题,但您需要了解自己在做什么,而不是盲目地从互联网上复制值

  • JAVA_HOME
    用于向系统环境标识查找JAVA运行时环境的位置。它需要设置为JDK安装位置的完整路径。在windows上,这可能是
    C:\ProgramFiles\Java\jdk-13.0.1
    。在Linux系统上,您有更大的灵活性。常见位置可能是
    /opt/java/jdk-13.0.1
    /usr/local/java/jdk-13.0.1
    。如果您在其他地方安装了JDK,则需要使用该路径。消息
    NB:JAVA\u HOME应该指向JDK而不是JRE
    指出了安装maven时的一个常见错误——maven需要JDK,而不是普通的JRE。此错误非常常见,任何时候
    JAVA\u HOME
    指向一个不是JDK的文件夹时,它都会打印此警告(即使该文件夹实际上不是JRE)
  • M2_HOME
    应设置为安装maven的完整路径(即解压缩位置)。无论出于何种原因,这或多或少都有助于maven“发现自己”。严格地说,这个是没有必要的。(我的系统没有设置,maven对我来说很好)。这主要是为了方便设置下一个环境变量
  • M2
    是maven可执行文件所在文件夹的完整路径。这几乎总是
    $M2_HOME/bin
    ,但肯定有可能做一些奇怪的事情,这会让你解决这些情况。显然,如果不指定
    $M2\u HOME
    ,这将不起作用。这一个也不是严格必要的,而且是设置下一个的一种方便方法
  • PATH
    是Linux系统在命令行中键入程序名称时查找要运行的程序的位置。为了便于使用,您需要确保maven和java可执行文件包含在
    分隔列表中的某个位置。大多数Linux发行版已经在某种shell资源文件中为您设置了默认的
    路径。您需要参考他们的文档,了解如何向路径中添加另一个条目,但常见的习惯用法是
    path=$path:$M2
    (这会将
    $M2
    的值附加到
    $PATH
    的值上,然后将结果存储回
    PATH
    中。如果未设置
    $M2
    $M2\u HOME
    ,则需要执行其他操作
  • 太长了,读不下去了,如果你在Java>/opt/java/JDK-130.1和未解压缩的Maven中安装JDK到>OPt/Mave/ApHaChan-Maven -3.63,你的Boad最小工作值是:

    export JAVA_HOME=/opt/java/jdk-13.0.1
    export PATH=$PATH:$JAVA_HOME/bin:/opt/maven/apache-maven-3.6.3/bin
    
    如果你想要一套完整的

    export JAVA_HOME=/opt/java/jdk-13.0.1
    export M2_HOME=/opt/maven/apache-maven-3.6.3
    export M2=$M2_HOME/bin
    export PATH=$PATH:$JAVA_HOME/bin:$M2
    

    值得注意的是,大多数JavaIDE将包括一个GUI,用于在IDE中设置maven和Java(这些设置通常只在该IDE中工作)。初学者通常更容易以这种方式开始和运行。

    好的,深呼吸,我们将进行介绍。每个环境变量都有一个目的,一旦你了解了这些目的,这就更有意义了。混合教程不一定是个问题,但你会想了解你的目的我们正在这样做,而不仅仅是从互联网上盲目复制价值观

  • JAVA_HOME
    用于识别系统环境中查找JAVA运行时环境的位置。它需要设置为JDK安装位置的完整路径。在windows上,这可能是
    C:\Program Files\JAVA\JDK-13.0.1
    。在Linux系统上,您有更大的灵活性。常见位置可能是
    /opt/java/jdk-13.0.1
    /usr/local/java/jdk-13.0.1
    。如果您在其他地方安装了jdk,则需要使用该路径。消息
    NB:java\u HOME应该指向jdk而不是JRE
    指的是安装maven时的一个常见错误——maven需要jdk,而不是普通的JRE。此错误非常常见hat anytime
    JAVA\u HOME
    指向一个文件夹