eclipse macos environment-variables

Lanzamiento mac eclipse con conjunto de variables de entorno



macos environment-variables (8)

Existe una solución alternativa que implica reemplazar el ejecutable que ejecuta MacOS X cuando el usuario inicia la aplicación Eclipse con un contenedor de shell que configura el entorno.

Cree un archivo de texto vacío llamado "eclipse.sh" en el directorio del paquete de aplicaciones de Eclipse /Aplicaciones/eclipse/Eclipse.app/Contents/MacOS.

Abra eclipse.sh en un editor de texto e ingrese los siguientes contenidos:

#!/bin/sh export ENV_VAR1=value export ENV_VAR2=value logger "`dirname /"$0/"`/eclipse" exec "`dirname /"$0/"`/eclipse" $@

En el ejemplo ENV_VAR1 y ENV_VAR2 están las variables de entorno que se están configurando. Estas variables serán visibles para los procesos lanzados desde Eclipse. El comando logger simplemente registrará la ruta del ejecutable del eclipse en system.log como un auxiliar de depuración.

En la Terminal establece el indicador ejecutable del script de shell eclipse.sh, es decir:

chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh

Abra Eclipse.app Info.plist y cambie el valor de la clave CFBundleExecutable de eclipse a eclipse.sh.

MacOS X no detecta automáticamente que ha cambiado el Info.plist de Eclipse.app. Por lo tanto, debe forzar la actualización de la base de datos LaunchService en el Terminal utilizando el comando lsregister:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app

La próxima vez que ejecute Eclipse.app desde el Dock o desde el Finder, las variables de entorno deben establecerse.

Mi empresa ofrece un entorno de desarrollo basado en eclipse que necesita algunas variables de entorno para la cadena de herramientas subyacente, por lo que se pueden instalar varias versiones al mismo tiempo y no tomar el control del sistema.

Quiero proporcionar un ícono en el buscador o el dock que los configura y luego lanza el eclipse para que los clientes no puedan lanzar el eclipse accidentalmente sin que se configure el entorno. Esto es lo que he intentado hasta ahora:

  1. Configuración del entorno en Info.plist para eclipse:

    Esta debería ser una buena forma de hacerlo, pero no puedo hacer que se agregue a la ruta existente (como export PATH = / myapp / bin: $ PATH).

  2. script de bash envolviendo eclipse:

    Creé un script bash llamado eclipse.command para configurar el entorno y luego lanzar eclipse. Esto abre una ventana de terminal, así como el icono de eclipse y permite a las personas "Mantener en el muelle" para el eclipse desnudo. No puedo poner eclipse.command en el dock ya que no es una aplicación.

  3. Applescript envolviendo eclipse.command:

    Un contenedor de Applescript alrededor de eclipse.com y lo hace parecer una aplicación y evita que aparezca la ventana del terminal. Lamentablemente ahora obtengo un ícono de dock para el applescript y otro para el eclipse, así que aún puedo mantener el eclipse al descubierto en el dock.

¿Alguna sugerencia? ¿Estoy haciendo esto de una manera completamente incorrecta?


Creé lo siguiente:

alias start-eclipse = ''abrir / Aplicaciones / eclipse / Eclipse.app''

Si ejecuta start-eclipse desde la línea de comando, todos los archivos serán recogidos. De esta forma, solo necesita mantener un solo conjunto de variables en ambos entornos, línea de comando y eclipse.


La respuesta de sakra anterior es impresionante, excepto que no hereda automáticamente su entorno bash existente. Para asegurar que eclipse.sh recoja su entorno bash existente, modifique eclipse.sh para usar bash en lugar de sh y agregue una línea para obtener su ~ / .bash_profile existente de esta manera:

#!/bin/bash source ~/.bash_profile logger "`dirname /"$0/"`/eclipse" exec "`dirname /"$0/"`/eclipse" $@


Esto funcionó perfectamente en OS X Yosemite:

  1. Abierto / Aplicaciones / Automator.
  2. Cuando aparece el menú desplegable que le pregunta qué tipo de documento desea crear, elija "Aplicación".
  3. En la segunda lista desde la izquierda, haga doble clic en "Ejecutar script de shell".
  4. En el lado derecho, elimine el "gato" que se coloca allí automáticamente y reemplácelo con esto:

    source ~/.bash_profile && /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse

Ahora vaya a Archivo-> Guardar y guarde la aplicación en su directorio de Aplicaciones. Lo llamé "Eclipse" con una "E" mayúscula para no entrar en conflicto con el directorio "eclipse" que ya tenía. Para una buena medida, incluso puede darle el ícono de Eclipse seleccionando la aplicación de eclipse real, presionando command-i, seleccionando el ícono, presionando command-c, luego seleccionando la aplicación del autómata "Eclipse", presionando command-i, seleccionando el ícono y presionando command-v.

Ahora puede abrir la aplicación, o incluso arrastrarla a su dock. Tenga en cuenta que si lo inicia, el eclipse "real" seguirá apareciendo en su dock como un icono separado, pero no puede tener todo. :)


Como se señala en https://github.com/atom/atom/issues/7045 , las variables de entorno se pueden cargar automáticamente, sin source ~/.bash_profile explícita source ~/.bash_profile mediante el uso de

#!/usr/bin/env bash -l

en lugar de

#!/bin/bash source ~/.bash_profile

después de eso, en ambos casos, sigue

exec "`dirname /"$0/"`/eclipse" $@

Funciona muy bien para mí, gracias por todo el trabajo previo.


Ninguno de los anteriores funcionó para mí. tiene que configurar Eclipse -> Preferencias -> Terminal -> Argumentos establecidos en --login. Esto le indicará a Eclipse que inicie sesión con su cuenta justo después de abrir Terminal.

Ver captura de pantalla:

Referencia: https://marketplace.eclipse.org/comment/4259#comment-4259


Eche un vistazo a una pregunta relacionada: Variables de entorno en Mac OS X.

Básicamente, esto implica la creación de un archivo ~/.MacOSX/environment.plist .

Salga e inicie sesión para que environment.plist sea recogido por .App''s


El enlace a Eclipse no usa la ruta establecida en .bashrc

  1. Crear script simple

#!/bin/bash source /home/user/.environment_variables /home/user/eclipse_cpp/eclipse -Duser.name="My Name"

2. A continuación, coloque todas las variables de su sistema en el archivo /home/user/.environment_variables (cualquier archivo que desee)

Mi aspecto es como:

export COCOS_ROOT=/home/user/Projects/edukoala export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

3. Ahora puede eliminar sus variables en .bashrc y poner línea

source /home/user/.environment_variables

Todo funciona bien :)