web-dev-qa-db-ja.com

OS X MavericksでGUIアプリの環境変数を設定するにはどうすればよいですか?

OS X Mavericksでアプリを実行するのに苦労してきました。ようやく、.appバンドルをドリルダウンしてシェルスクリプトを直接実行することで、実行できるようになりました。 Java_HOMEを設定する必要があるようです。シェルの.profileで設定すると、すべて正常に動作します。

ただし、ドックのアイコンをクリックするだけでは実行されません。私の推測では、これはJava_HOMEがグローバルに設定されていないためです。シェルから直接アプリを実行していないため、OS XはJava_HOMEが何であるかを知りません。見つめ続けるだけです。

以前のバージョンのOS Xでは、環境変数は/etc/launchd.confに追加するだけでGUIアプリに設定できるようでした。このファイルはマーベリックスには存在しないようです。 MavericksのGUIアプリで機能するグローバル環境変数を設定するにはどうすればよいですか?

19
user1015721

/etc/launchd.confはデフォルトでは存在していませんが、10.9でも機能します。

  1. たとえば、Sudo nano /etc/launchd.confを実行します。
  2. setenv Java_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Homeのような行を追加します。 (ただし、実際にJava_HOMEを何に設定すればよいかわかりません。)
  3. 再起動するか、launchctl < /etc/launchd.conf; Sudo launchctl < /etc/launchd.confを実行してプロセスを再起動します。

launchctl exportは、ユーザーlaunchdプロセスによってエクスポートされた変数を出力し、Sudo launchctl exportは、ルートlaunchdプロセスによってエクスポートされた変数を出力します。

このメソッドは、デフォルトパスの設定にも使用できます。たとえば、次の行を/etc/launchd.confに追加しました:

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

/Users/lauri/bin~/binになるので、プログラムはrootとして実行されるため、~/binではなく/var/root/binを使用しました。)

24
Lri