我认为这个命令序列解释了我的整个问题:
[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 文件并将其移动到公共区域。