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


当前回答

用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,要使用哪个。 对于具有root权限的打开终端。

 sudo su

 ls /usr/lib/jvm/

现在它将列出可用的java版本。 选择列出的版本。

复制路径直到这里。

现在打开bashrc

  nano ~/.bashrc

在末尾添加以下命令

 export JAVA_HOME="path that you copied"

  export PATH=$JAVA_HOME/bin:$PATH

保存文件,然后按Ctrl+S和Ctrl+X退出

现在运行下面的命令:

  source ~/.bashrc

对于所有用户,我建议在/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中。

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

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

export JAVA_HOME=/usr/java/default

答案是之前的帖子是有效的。但没有一个答案是完整的:

不建议修改/etc/profile,原因如下(如/etc/profile中所述):

修改这个文件不是一个好主意,除非你知道你在做什么。在中创建custom.sh shell脚本要好得多 /etc/profile.D /对您的环境进行自定义更改,如下所示 将防止在未来的更新中合并的需要

因此,如上所述,创建/etc/profile.d/custom.sh文件进行自定义更改。 现在,为了随时更新正在安装的新版本的Java,永远不要放置绝对路径,而是使用:

#如果将JDK作为Java home export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") 或 #如果将jre作为Java的主页 export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

记住要有#!打开custom.sh文件中的/bin/bash

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