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
/etc
Lion にディレクトリがあるか(あると仮定)か、/etc/bashprofile
実際にそのディレクトリにあるかはわかりませんが、/etc/bashrc
システム全体でこの変更を適用するには、これらのファイルのいずれかを見つけて編集します。そこに行って変更してください:
export PATH=$PATH:/path/to/Java/
次のログイン時に変更が有効になります。