我刚接触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到底在哪里?


当前回答

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复制一行代码,归功于他们

其他回答

您可以使用/etc/profile或类似/etc/profile.d/jdk_home.sh的文件

export JAVA_HOME=/usr/java/jdk1.7.0_05/

你必须记住,这个文件只加载了新的登录shell ..所以在bash -l或一个新的gnome-session之后,它不会随着新的Java版本而改变。

在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/

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

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

测试方面:

echo $JAVA_HOME

使用SDKMAN。顺便说一句,IO切换。你的sdk。

它为您设置JAVA_HOME。

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复制一行代码,归功于他们