Java_home Linux 终端中没有这样的文件或目录

Java_home Linux 终端中没有这样的文件或目录

你好我有一个问题我的linux终端显示bash:java_home:没有这样的文件或目录,当我输入echo $ JAVA_HOME时我得到/ usr / lib / jvm / java-8-openjdk-amd64并且echo $ PATH显示/ usr / lib /jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/ usr/bin:/sbin:/bin:/usr/games:/usr/local/games。当我编写 sudo apt-get install 时,我得到 JAVA_HOME:not find 我找不到问题,我正在使用 kubuntu,下面您可以在我的主目录中看到我的终端和 .profile 文件。也许有人知道如何解决它。先感谢您。

在此输入图像描述

在此输入图像描述

答案1

关键的错误消息是:

/usr/sbin/update-info-dir: 2: /etc/environment: JAVA_HOME: not found

这表明错误消息来自/usr/sbin/update-info-dir,这是一个可以作为软件包安装/删除操作的一部分执行的脚本。它正在读取(获取)/etc/environment文件并在其中遇到错误。

/etc/environment应该只包含 POSIX-shell 风格的环境变量赋值,即

VARIABLE_NAME=value

必须具备等号之前或之后没有空格:如果有空格,变量名将被解释为 shell 命令,并且 shell 将尝试执行它。

我猜你的/etc/environment文件可能包含类似的内容

JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64

$JAVA_HOME因此,读取文件的 shell不会将路径名分配给环境变量,而是将其解释为要执行的 shell 命令。它将尝试执行一个JAVA_HOME带有两个参数=和 的字面命名命令/usr/lib/jvm/java-8-openjdk-amd64。由于名为的命令JAVA_HOME不存在,这将导致错误消息。

编辑/etc/environment文件并删除环境变量分配中等号之前/之后的所有空格。

答案2

sudo 不会维护您的环境变量。尝试

sudo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 apt-get ...

如果您的 sudo 配置不允许这样做,请尝试sudo -i按照JAVA_HOME=... apt-get...上面的方法操作

相关内容