Como posso definir variáveis ​​de ambiente para aplicativos da GUI no OS X Mavericks?

19

Estou lutando para que um aplicativo seja executado no OS X Mavericks. Finalmente, consegui executá-lo pesquisando o pacote .app e executando o script shell diretamente. Parece que JAVA_HOME precisava ser definido. Então, eu o coloquei no meu .profile no shell, e tudo funciona bem.

No entanto, se eu quiser simplesmente clicar no ícone no dock, ele não será executado. Meu palpite é que isso ocorre porque JAVA_HOME não está definido globalmente. Como não estou executando o aplicativo diretamente do shell, o OS X não sabe o que é JAVA_HOME. Apenas continua olhando.

Nas versões anteriores do OS X, parece que as variáveis ​​de ambiente podem ser definidas para aplicativos da GUI simplesmente adicionando-as ao /etc/launchd.conf. Este arquivo parece não existir no Mavericks. Como posso definir uma variável de ambiente global que funcionará para aplicativos GUI no Mavericks?

user1015721
fonte

Respostas:

24

/etc/launchd.conf nunca existiu por padrão, mas ainda funciona no 10.9.

  1. Corra por exemplo sudo nano /etc/launchd.conf.
  2. Adicione uma linha como setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Não sei o JAVA_HOMEque realmente deve ser definido.)
  3. Reinicie ou execute launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confe reinicie os processos.

launchctl exportimprime variáveis ​​exportadas pelo processo de inicialização do usuário e sudo launchctl exportimprime variáveis ​​exportadas pelo processo de inicialização da raiz.

Este método também pode ser usado para definir um caminho padrão. Por exemplo, eu adicionei esta linha em /etc/launchd.conf:

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

(Eu usei em /Users/lauri/binvez de ~/binporque ~/binseria /var/root/binpara programas executados como root.)

Lri
fonte
5
+1 para explicar como obter alterações /etc/launchd.confsem reiniciar o sistema. Para configurar o PATH, os arquivos de variáveis ​​de ambiente /etc/paths.d/devem ser usados.
Timo Meinen 28/02
4
Na verdade, /etc/launchd.confnão funciona mais depois das 10h10.
OleGG 09/11