Comment puis-je définir des variables d'environnement pour les applications GUI dans OS X Mavericks?

19

J'ai du mal à faire fonctionner une application dans OS X Mavericks. J'ai finalement pu le faire fonctionner en forant dans le bundle .app et en exécutant directement le script shell. Il semble que JAVA_HOME ait dû être défini. Je l'ai donc mis dans mon .profile dans le shell, et tout fonctionne bien.

Cependant, si je veux simplement cliquer sur l'icône dans le dock, cela ne fonctionnera pas. Je suppose que c'est parce que JAVA_HOME n'est pas défini globalement. Étant donné que je n'exécute pas l'application directement à partir du shell, OS X ne sait pas ce qu'est JAVA_HOME. Il continue de chercher.

Dans les versions précédentes d'OS X, il semble que les variables d'environnement pouvaient être définies pour les applications GUI en les ajoutant simplement à /etc/launchd.conf. Ce fichier ne semble pas exister dans Mavericks. Comment puis-je définir une variable d'environnement global qui fonctionnera pour les applications GUI dans Mavericks?

user1015721
la source

Réponses:

24

/etc/launchd.conf n'a jamais existé par défaut, mais il fonctionne toujours en 10.9.

  1. Exécutez par exemple sudo nano /etc/launchd.conf.
  2. Ajoutez une ligne comme setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Je ne sais pas sur quoi JAVA_HOMEdevrait être réglé.)
  3. Redémarrez ou exécutez launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confet relancez les processus.

launchctl exportimprime les variables exportées par le processus launchd de l'utilisateur et sudo launchctl exportimprime les variables exportées par le processus launchd racine.

Cette méthode peut également être utilisée pour définir un chemin par défaut. Par exemple, j'ai ajouté cette ligne à /etc/launchd.conf:

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

(J'ai utilisé /Users/lauri/binau lieu de ~/binparce que ce ~/binserait /var/root/binpour les programmes exécutés en tant que root.)

Lri
la source
5
+1 pour avoir expliqué comment effectuer des modifications /etc/launchd.confsans redémarrer le système. Pour configurer la variable d'environnement PATH, les fichiers dans /etc/paths.d/doivent être utilisés.
Timo Meinen
4
En fait, /etc/launchd.confne fonctionne plus après 10.10
OleGG