por que posso invocar java de um usuário, mas não root?

2

Acho que essa sequência de comandos explica toda a minha pergunta:

[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

Rodando o fedora 13

Suponho que vale a pena perguntar explicitamente: quais etapas eu preciso tomar para poder invocar java como root?

mais informações:

[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

ATUALIZAÇÃO: então obviamente "/usr/java/jdk1.6.0_22/bin" está faltando no caminho para o root. Como posso adicioná-lo ao caminho da raiz? aqui está o meu ~ / 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"
    
por Ramy 20.07.2011 / 03:04

2 respostas

3

Verifique se o java está no seu caminho, por exemplo usando os comandos

which java
echo $PATH

com e sem raiz.

    
por 20.07.2011 / 03:39
2

n.b. O seguinte é de um usuário do Windows com apenas algumas semanas de experiência no Linux, por isso, se eu usar alguns termos do Windows, me desculpe.

Os arquivos necessários para chamar o Java podem estar no diretório inicial do usuário ou no diretório Downloads. Esses locais podem não ser visualizados quando você está root (semelhante a quando algo não está na variável de caminho do Windows), portanto, sob a raiz, o sistema operacional procura áreas comuns (e o diretório raiz) e não consegue encontrá-lo, sob usuário olha nas áreas comuns e é o diretório home e encontrá-lo lá.

Tente encontrar os arquivos Java e movê-los para uma área comum.

    
por 20.07.2011 / 03:19