내 환경 변수가 명령줄에 표시되지 않는 이유는 무엇입니까?

내 환경 변수가 명령줄에 표시되지 않는 이유는 무엇입니까?

Lion(Mac OS X 10.7.2)에서 James SMTP 서버를 실행하려고 합니다. 내가 이것을 할 때 :

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

좋은 결과.

그러나 다른 응용 프로그램에서도 볼 수 있도록 JAVA_HOME을 환경 변수로 설정하고 싶습니다.

~/.bash_profile을 다음과 같이 편집했습니다.

export JAVA_HOME=/Library/Java/home

그리고 변수는 다음과 같이 명령줄에서 표시되는 것 같습니다.

$ echo $JAVA_HOME
/Library/Java/home

하지만 이와 같이 james를 다시 실행하면 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.

내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까? james의 명령을 실행할 때 JAVA_HOME 환경 변수를 볼 수 없는 이유는 무엇입니까?

어떤 정보라도 대단히 감사하겠습니다. 감사합니다!

답변1

sudo환경 변수를 안전한 기본값으로 재설정합니다.

변수를 유지하려면 visudo다음을 추가해야 합니다.

Defaults env_keep = "JAVA_HOME"

사용자 환경 변수를 권한 있는 계정에 전달하면 보안 위험이 발생할 수 있습니다.

답변2

/etcLion에 디렉터리가 있는지(있는 것으로 가정) 또는 /etc/bashprofile실제로 해당 디렉터리에 있는지 확실하지 않지만 /etc/bashrc시스템 전체에 걸쳐 이 변경 사항을 적용하려면 이러한 파일 중 하나를 찾아서 편집하세요. 거기로 가서 변경하세요:

export PATH=$PATH:/path/to/Java/

다음 로그인 시 변경 사항이 적용되어 유지됩니다.

관련 정보