2 votos

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

Estoy intentando ejecutar el servidor smtp de james 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 sea visible también para otras aplicaciones.

He editado ~/.bash_profile para que tenga este aspecto...

export JAVA_HOME=/Library/Java/home

... y la variable parece ser visible desde la línea de comandos así ...

$ echo $JAVA_HOME
/Library/Java/home

Pero cuando vuelvo a ejecutar james así, me 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

3voto

yoliho Puntos 340

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

sudo se ejecuta como otro usuario - en este caso Root ya que no has proporcionado el parámetro -u nombre de usuario. Por lo tanto, es necesario cambiar el entorno Root para que JAVA_HOME sea visible para el comando run.sh

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X