我刚接触Linux系统,似乎有太多的Java文件夹。

Java -version给我:

Java版本“1.7.0_55” OpenJDK运行时环境(rhel-2.4.7.1。el6_5-x86_64 u55-b13) OpenJDK 64位服务器虚拟机(build 24.51-b03,混合模式)

当我试图构建一个Maven项目时,我得到了错误:

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java

请问root用户和非root用户需要修改哪些文件,java到底在哪里?


当前回答

对于所有用户,我建议在/etc/profile.d/java_home.sh中按以下行创建一个文件

# Set JDK installation directory according to selected Java compiler

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

这将动态更新,并与替代系统一起很好地工作。不过请注意,更新只会发生在新的登录shell中。

其他回答

1……使用快捷键Ctlr + Alt + T打开终端

2…执行如下命令:

echo export JAVA_HOME='$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' | sudo tee /etc/profile.d/jdk_home.sh > /dev/null

3…(推荐)重启虚拟机/计算机。如果不想重新启动计算机,可以使用source /etc/source

4……使用快捷键Ctlr + Alt + T打开终端

5……已验证的JAVA_HOME安装

echo $JAVA_HOME

从flob复制一行代码,归功于他们

在RHEL 7中,没有一个其他答案对我来说是“坚持”的,甚至直接在/etc/profile或~/中设置JAVA_HOME和PATH。Bash_profile将不起作用。每次我试图检查是否设置了JAVA_HOME时,都会出现空白:

$ echo $JAVA_HOME
    (<-- no output)

我要做的是在/etc/profile.d/jdk_home.sh中设置一个脚本:

#!/bin/sh
export JAVA_HOME=/opt/ibm/java-x86_64-60/
export PATH=$JAVA_HOME/bin:$PATH

我最初忽略了第一行(#!/bin/sh),没有它它就不能工作。

现在它开始工作了:

$ echo $JAVA_HOME
/opt/ibm/java-x86_64-60/

步骤1 -通过echo $JAVA_HOME检查当前java版本

第二步vim /etc/简介

步骤3 -在文件的末尾你会发现 export JAVA_HOME时,我们需要在这里提供新的路径,确保它不是相对的。

步骤4—保存并退出:wq

步骤5 -“source /etc/profile/”,这将执行更改

第6步-再次执行echo $JAVA_HOME -更改将被反映。

这是一个非常简单的解决问题的脚本

export JAVA_HOME_BIN=`which java`
export JAVA_HOME_DIR=`dirname $JAVA_HOME_BIN`
export JAVA_HOME=`dirname $JAVA_HOME_DIR`

测试方面:

echo $JAVA_HOME

做甲骨文所做的事情(作为前Sun员工,我不习惯这种做法)

ln -s latestJavaRelease /usr/java/default latestJavaRelease是您想要使用的版本

export JAVA_HOME=/usr/java/default