私の環境変数がコマンドラインに表示されないのはなぜですか?

私の環境変数がコマンドラインに表示されないのはなぜですか?

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/

次のログイン時に変更が有効になります。

関連情報