为什么我可以从一个用户调用 java,但不能从 root 用户调用?

为什么我可以从一个用户调用 java,但不能从 root 用户调用?

我认为这个命令序列解释了我的整个问题:

[Ramy@Moonface Downloads]$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)
[Ramy@Moonface Downloads]$ su -
Password: 
[root@Moonface ~]# java -version
bash: java: command not found

运行 Fedora 13

我想值得明确地问一下:我需要采取什么步骤才能以 root 身份调用 java?

更多信息:

[Ramy@Moonface ~]$ which java
/usr/java/jdk1.6.0_22/bin/java
[Ramy@Moonface ~]$ echo $PATH
/usr/java/jdk1.6.0_12/bin:/usr/java/jdk1.6.0_12/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/  sbin:/usr/sbin:/sbin:/home/Ramy/bin:/usr/java/jdk1.6.0_22/bin
[Ramy@Moonface ~]$ su -
Password: 
[root@Moonface ~]# which java
/usr/bin/which: no java in     (/usr/java/jdk1.6.0_12/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/roo  t/bin)
[root@Moonface ~]# echo $PATH
/usr/java/jdk1.6.0_12/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

更新:显然 root 路径中缺少“/usr/java/jdk1.6.0_22/bin”。我该如何将其添加到 root 路径中?这是我的 ~/bash_profile:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export JAVA_HOME="/usr/java/jdk1.6.0_22"

答案1

检查 java 是否在你的路径上,例如使用命令

which java
echo $PATH

有或无 root。

答案2

注意:以下内容来自一位仅有几周 Linux 经验的 Windows 用户,因此如果我使用了一些 Windows 术语,我很抱歉。

调用 Java 所需的文件可能位于用户的主目录或下载目录中。当您是 root 时,可能无法查找这些位置(类似于当某些内容不在 Windows 路径变量中时),因此在 root 下,操作系统会查找公共区域(和 root 的主目录)但找不到它;在用户下,它会查找公共区域和它的主目录并在其中找到它。

尝试查找 Java 文件并将其移动到公共区域。

相关内容