JAVA_HOME 设置不正确。如何重置它?

Posted

技术标签:

【中文标题】JAVA_HOME 设置不正确。如何重置它?【英文标题】:JAVA_HOME incorrectly set. How to reset it? 【发布时间】:2012-03-27 11:43:44 【问题描述】:

当我尝试运行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 错误呢?

【问题讨论】:

【参考方案1】:

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

所以设置为:

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

export PATH=$PATH:$JAVA_HOME/bin

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

which java

【讨论】:

【参考方案2】:

你可以在你的.bashrc中加入以下内容,那么即使你换成不同的java也应该是正确的。

a=`realpath /usr/bin/java`;
export JAVA_HOME="$a%/bin/java"

【讨论】:

【参考方案3】:

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 路径)

【讨论】:

【参考方案4】:

    转到终端并使用您选择的编辑器(vim、nano 等)打开以下任一文件:

    # nano /etc/profile
    

    (或)

    # nano /root/.bash_profile
    

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

    现在运行以下命令:

    # export JAVA_HOME="/opt/jdk1.6.0"
    # export PATH="/opt/jdk1.6.0/bin:$PATH"
    

    注销并登录系统,现在使用以下命令检查终端中的 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)
    

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

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

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

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

【讨论】:

以上是关于JAVA_HOME 设置不正确。如何重置它?的主要内容,如果未能解决你的问题,请参考以下文章

win10怎么把环境变量恢复

如何在 /etc/environment 中正确设置 JAVA_HOME

在Windows上启动Zookeeper时,JAVA_HOME设置不正确

如何正确重置 CancellationToken?

在cygwin中运行ant返回JAVA_HOME设置不正确

Java常见问题总结