
He estado luchando para que una aplicación se ejecute en OS X Mavericks. Finalmente pude ejecutarlo al profundizar en el paquete .app y ejecutar el script de shell directamente. Parece que era necesario configurar JAVA_HOME. Así que lo configuré en mi .profile en el shell y todo funciona bien.
Sin embargo, si simplemente quiero hacer clic en el icono del Dock, no se ejecutará. Supongo que esto se debe a que JAVA_HOME no está configurado globalmente. Como no estoy ejecutando la aplicación directamente desde el shell, OS X no sabe qué es JAVA_HOME. Simplemente sigue buscando.
En versiones anteriores de OS X, parece que se podían configurar variables de entorno para aplicaciones GUI simplemente agregándolas a /etc/launchd.conf. Este archivo no parece existir en Mavericks. ¿Cómo puedo configurar una variable de entorno global que funcione para aplicaciones GUI en Mavericks?
Respuesta1
/etc/launchd.conf
nunca ha existido de forma predeterminada, pero todavía funciona en 10.9.
- Ejecutar por ejemplo
sudo nano /etc/launchd.conf
. - Añade una línea como
setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
. (Aunque no sé quéJAVA_HOME
debería configurarse realmente). - Reinicie o ejecute
launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
y reinicie procesos.
launchctl export
imprime las variables exportadas por el proceso de inicio del usuario e sudo launchctl export
imprime las variables exportadas por el proceso de inicio raíz.
Este método también se puede utilizar para establecer una ruta predeterminada. Por ejemplo, he agregado esta línea a /etc/launchd.conf
:
setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
(Usé /Users/lauri/bin
en lugar de ~/bin
porque ~/bin
sería /var/root/bin
para programas que se ejecutan como root).
Respuesta2
Launchd.conf ya no funciona ni se puede utilizar desde Mac OS 10.10.
La forma correcta de lograr esto ahora es a través de scripts de LaunchAgent que se cargan en el momento del inicio. Dado que estos scripts son tremendamente tediosos (opinión personal :), prefiero usar .bash_profile y crear/actualizar estos scripts automáticamente.
Pruebe esta respuesta SO para obtener una forma más sencilla de lograrlo desde su .bash_profile. Espero que esto te ahorre las pocas horas que pasé tratando de resolverlo (nuevamente) para mi nuevo Mac M2.