Maven安装问题:JAVA_HOME应该指向JDK而不是JRE?
我是CS的新手,对UNIX/Bash vocab非常不熟悉 我目前正在尝试安装Maven,我复制粘贴旧的安装说明(版本号不正确)时犯了一些错误,现在整个过程都一团糟。我先是尝试按照网站上给出的说明进行操作,但没有成功,然后我又尝试了其他一些方法,现在我担心,按照不同的说明进行操作会让我陷入混乱 现在,如果我输入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
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
,则需要执行其他操作
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 anytimeJAVA\u HOME
指向一个文件夹