我刚接触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 / 或 . / etc /

你编辑过的资料在哪里。

其他回答

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

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

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

当我们开始设置JAVA_HOME时,让我分享一些设置JAVA_HOME或任何其他环境变量的好处:

1)在不影响应用程序启动和指向JAVA_HOME的配置文件的情况下,很容易升级JDK。你只需要下载新版本,并确保你的JAVA_HOME指向新版本的Java。这是使用环境变量或链接的最大好处。

2) JAVA_HOME变量短小精悍,而不是JDK安装目录的完整路径。

3) JAVA_HOME变量是平台独立的,即如果你的启动脚本使用JAVA_HOME,那么它可以在Windows和UNIX上运行而不需要任何修改,你只需要在各自的操作系统上设置JAVA_HOME。

阅读更多信息:http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

用sudo打开kafka-run-class.sh进行写入

你可以在kafka文件夹中找到kafka-run-class.sh: kafka/bin/kafka-run-class.sh

检查这些行

修改else部分中的JAVA变量,使其指向JAVA /bin中的JAVA可执行文件。像JAVA = " $ JAVA_HOME / JAVA "

所有操作步骤(找到java,父目录,编辑文件,…)一个解决方案

zFileProfile="/etc/profile"
zJavaHomePath=$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
echo $zJavaHomePath

echo "export JAVA_HOME=\"${zJavaHomePath}\"" >> $zFileProfile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> $zFileProfile

结果:

# tail -2 $zFileProfile
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"
export PATH=$PATH:$JAVA_HOME/bin

解释:

1)让我们把完整的命令分解成几个部分

$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)

2)从java命令中找到java路径

# $(which java)
"/usr/bin/java"

3)由符号路径得到相对路径

# readlink -ze /usr/bin/java
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java"

4)获取/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java的父路径

# readlink -ze /usr/bin/java | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin"

5)获取“/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/”的父路径

# readlink -ze /usr/bin/java | xargs -0 dirname | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"

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