14

当我尝试运行mvn(即 Apache Maven)时,我不断得到error "JAVA_HOME" not set.

我按照说明设置JAVA_HOME变量如下;在终端:

user@localhost$export JAVA_HOME=/home/user/jdk1.7.0_02/bin/java

user@localhost$export PATH=$PATH:/home/usr/jdk1.7.0_02/bin

这看起来是对的,对吧?那为什么我仍然得到不正确的JAVA_HOME错误?

4

6 回答 6

37

JAVA_HOME 通常应该只包含包含 bin 文件夹的文件夹。

所以在你的情况下

export JAVA_HOME=/home/user/jdk1.7.0_02/

export PATH=$PATH:$JAVA_HOME/bin

除了找到你的 java_home 的位置,你可以按照这个命令

which java

(这将返回当前 java 二进制文件的路径。这里是它的 /usr/bin/java)

ls -alh /usr/bin/java

(这将返回符号链接的真实路径。在这里是它的 /etc/alternatives/java。

ls -alh /etc/alternatives/java

(这将返回此符号链接的真实路径,这是实际的 JAVA HOME 路径)

于 2012-03-10T04:57:58.580 回答
3
  1. 转到终端并使用您选择的编辑器(vim、nano 等)打开以下任一文件:

    # nano /etc/profile
    

    (或者)

    # nano /root/.bash_profile
    

    (您也可以更改普通用户名,而不是 root。)

  2. 现在运行以下命令:

    # export JAVA_HOME="/opt/jdk1.6.0"
    # export PATH="/opt/jdk1.6.0/bin:$PATH"
    
  3. 注销并登录系统,现在使用以下命令检查终端中的 java 版本:

    # java -version
    

    输出应与此类似:

    # java -version
    java version “1.6.0″
    Java(TM) SE Runtime Environment (build 1.6.0-b105)
    Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
    
于 2012-03-10T04:40:33.930 回答
1

您可以将以下内容放在您的 .bashrc 中,那么即使您更改为不同的 java,它也应该是正确的。

a=`realpath /usr/bin/java`;
export JAVA_HOME="${a%/bin/java}"
于 2015-03-01T21:47:44.860 回答
1

不... $JAVA_HOME 必须指向 /home/user/jdk1.7.0_02/

为防止出现“/home/user”与“/home/usr”之类的错误,$PATH 应为“$PATH:$JAVA_HOME/bin”

我建议使用本机软件包(yum、apt-get 等)。

于 2012-03-10T04:38:15.203 回答
0

因为那不是您将 JAVA_HOME 设置为的内容。

http://maven.apache.org/download.html

确保将 JAVA_HOME 设置为您的 JDK 的位置,例如 export JAVA_HOME=/usr/java/jdk1.5.0_02 并且 $JAVA_HOME/bin 在您的 PATH 环境变量中。

于 2012-03-10T04:51:03.543 回答
0

JAVA_HOME通常应该只包括包含 bin 文件夹的文件夹。

所以设置为:

export JAVA_HOME=/usr/lib/jdk1.7.0_02/

export PATH=$PATH:$JAVA_HOME/bin

之后,您还可以使用以下方法进行验证:

which java
于 2021-04-01T06:18:36.913 回答