¿por qué mi variable de entorno no es visible desde la línea de comandos?

2

Estoy intentando ejecutar el servidor james smtp en Lion. Cuando hago esto ...

sudo JAVA_HOME=/Library/Java/Home ./james-2.3.2/bin/run.sh

... funciona bien.

Sin embargo, me gustaría hacer de JAVA_HOME una variable de entorno para que otras aplicaciones también puedan verla.

Edité ~ / .bash_profile para tener este aspecto ...

export JAVA_HOME=/Library/Java/home

... y la variable parece ser visible desde la línea de comando como ...

$ echo $JAVA_HOME
/Library/Java/home

Pero cuando vuelvo a ejecutar a james de esta forma, aparece una advertencia sobre JAVA_HOME ...

$ sudo ./james-2.3.2/bin/run.sh
ERROR: JAVA_HOME not found in your environment.

Please, set the JAVA_HOME variable in your environment to match the
location of the Java Virtual Machine you want to use.

¿Alguna idea de lo que estoy haciendo mal? ¿Por qué el comando para ejecutar james no puede ver la variable de entorno JAVA_HOME?

Cualquier información es muy apreciada, gracias!

Rob

    
pregunta Robert Hume 29.12.2011 - 18:00

1 respuesta

3

El problema es que no se está ejecutando en su entorno, por lo que cualquier cambio en ~ / .bash_profile no tendrá ningún efecto en el comando. Será visible para otros procesos

sudo se ejecuta como otro usuario, en este caso la raíz, ya que no ha proporcionado un parámetro -u nombre de usuario. Por lo tanto, debe cambiar el entorno raíz para que JAVA_HOME sea visible para el comando run.sh

    
respondido por el Mark 29.12.2011 - 18:53

Lea otras preguntas en las etiquetas