2009-05-06 4 views
26

Mon entreprise fournit un environnement de développement basé sur l'éclipse qui nécessite certaines variables d'environnement pour la chaîne d'outils sous-jacente afin que plusieurs versions puissent être installées simultanément et non sur le système.Lancement de mac eclipse avec l'ensemble de variables d'environnement

Je souhaite fournir une icône dans le Finder ou le Dock qui les définit, puis lance Eclipse afin que les clients ne puissent pas lancer accidentellement Eclipse sans que l'environnement soit défini. Voilà ce que je l'ai essayé jusqu'à présent:

  1. environnement de réglage dans Info.plist pour Eclipse:

    Cela devrait être une bonne façon de le faire mais je ne peux pas le faire ajouter à la existante chemin (comme l'exportation PATH =/myapp/bin: $ PATH).

  2. bash éclipse d'emballage script:

    J'ai créé un script bash appelé eclipse.command pour définir l'environnement puis lancer Eclipse. Ceci ouvre une fenêtre de terminal comme icône Eclipse et permet aux personnes de "rester sur le quai" pour l'éclipse nue . Je ne peux pas mettre eclipse.command sur le dock car c'est pas une application.

  3. AppleScript eclipse.command d'emballage:

    Un AppleScript autour eclipse.command fait ressembler à une application et empêche la fenêtre de terminal apparaît. Malheureusement je maintenant obtenir une icône de quai pour l'applescript et un pour l'éclipse ainsi peut toujours garder l'éclipse nue sur le dock.

Une suggestion? Est-ce que je vais à ce sujet dans le mauvais sens?

+0

Faites glisser l'icône vanille Eclipse sur le quai? –

Répondre

6

Jetez un oeil à une question connexe: Environment variables in Mac OS X.

Fondamentalement, cela implique la création d'un fichier ~/.MacOSX/environment.plist.

Déconnexion et se connecter pour le environment.plist pour obtenir ramassé par

de .app
+1

[RCenvironment] (http://www.rubicode.com/Software/RCEnvironment/) – Gilimanjaro

43

Il existe une solution alternative qui consiste à remplacer l'exécutable qui est géré par Mac OS X lorsque l'utilisateur lance l'application Eclipse avec un shell wrapper qui configure l'environnement.

Créez un fichier texte vide appelé "eclipse.sh" dans le répertoire du regroupement d'applications Eclipse /Applications/eclipse/Eclipse.app/Contents/MacOS.

Ouvrez le eclipse.sh dans un éditeur de texte d'entrer dans le contenu suivant:

#!/bin/sh 

export ENV_VAR1=value 
export ENV_VAR2=value 

logger "`dirname \"$0\"`/eclipse" 

exec "`dirname \"$0\"`/eclipse" [email protected] 

Dans l'exemple ENV_VAR1 et ENV_VAR2 sont les variables d'environnement sont mis en place. Ces variables seront visibles pour les processus lancés à partir d'Eclipse. La commande logger consignera simplement le chemin de l'exécutable eclipse dans le fichier system.log en tant qu'aide de débogage.

Dans le terminal mis le drapeau exécutable du script shell eclipse.sh, à savoir:

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

Ouvrez le Eclipse.app Info.plist et modifiez la valeur de la clé de CFBundleExecutable éclipse eclipse.sh . MacOS X ne détecte pas automatiquement que l'Info.plist d'Eclipse.app a changé. Par conséquent, vous devez forcer mettre à jour la base de données LaunchService dans le terminal en utilisant la commande lsregister:

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

La prochaine fois que vous lancez Eclipse.app du Dock ou du Finder les variables d'environnement doivent être définies.

+2

Tout simplement la meilleure option par une large marge! Merci beaucoup, fonctionne parfaitement !! –

+0

Cela ne semble plus fonctionner, au moins sous OSX Lion avec Eclipse Indigo (3.7). –

+1

@JohnGardner Fonctionne pour moi. – sakra

5

J'ai créé les éléments suivants:

alias démarrage éclipse = « /Applications/eclipse/Eclipse.app ouvert »

Si vous exécutez démarrage éclipse depuis la ligne de commande, tous les vars env seront sélectionnés en haut De cette façon, vous n'avez besoin de gérer qu'un seul ensemble de variables d'environnement dans les environnements de ligne de commande et d'éclipse.

+0

Ce n'est pas l'idéal, mais cela a fait l'affaire avec OSX Lion et Eclipse 3.7.1. –

+0

Pourquoi n'est-ce pas idéal? Quel est le probleme avec ca? – Tommy

+0

Une solution idéale n'aurait aucun compromis. – pohl

1

Lien vers Eclipse doesn't use the path set in .bashrc

  1. Créer simple script
#!/bin/bash 
source /home/user/.environment_variables 
/home/user/eclipse_cpp/eclipse -Duser.name="My Name" 

2. Ensuite mettez vos toutes les variables du système dans /home/user/.environment_variables de fichiers (tout fichier vous voulez)

Mon ressemble:

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

3. Vous pouvez maintenant supprimer vos variables .bashrc et ligne mettre

source /home/user/.environment_variables 

Tout fonctionne très bien la réponse :)

+0

Cette réponse semble être pour unix/linux. La question initiale portait sur macOS. Eclipse sur mac n'est normalement pas exécuté à partir d'un contexte shell. – Kenster

+0

@Kenster a répondu pour Mac;) Il ya 4 ans –

3

sakra ci-dessus est génial, sauf n'hérite pas automatiquement de votre environnement bash existant. Pour assurer eclipse.sh prend votre environnement bash existant, modifier eclipse.sh utiliser bash au lieu de sh et ajouter une ligne à la source de votre existante ~/.bash_profile ainsi:

#!/bin/bash 
source ~/.bash_profile 
logger "`dirname \"$0\"`/eclipse" 
exec "`dirname \"$0\"`/eclipse" [email protected] 
+0

Impressionnant. Je peux vérifier cela a fonctionné comme indiqué avec la réponse ci-dessus de sakra – Cuga

3

Cela a parfaitement fonctionné dans OS X Yosemite :

  1. Ouvrir/Applications/Automator.
  2. Lorsque la liste déroulante s'affiche pour vous demander quel type de document vous souhaitez créer, choisissez "Application".
  3. Dans la deuxième liste de la gauche, double-cliquez sur "Run Shell Script"."
  4. Dans le côté droit supprimer le « chat » qui obtient automatiquement mis là, et le remplacer par ceci:

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

Maintenant, allez dans Fichier-> Enregistrer et enregistrez l'application sur votre Répertoire des applications, je l'ai nommé "Eclipse" avec un "E" majuscule pour ne pas entrer en conflit avec le répertoire "eclipse" que j'avais déjà .Pour faire bonne mesure, vous pouvez même lui donner l'icône Eclipse en sélectionnant l'application eclipse commande-i, en sélectionnant l'icône, en appuyant sur commande-c, puis en sélectionnant l'application automate "Eclipse", en appuyant sur commande-i, en sélectionnant l'icône et en appuyant sur commande-v.

Maintenant, vous pouvez ouvrir l'application, ou même le faire glisser sur votre dock. Notez que si vous le lancez, l'éclipse "réelle" apparaîtra toujours dans votre dock comme une icône distincte, mais vous ne pouvez pas tout avoir. :)

1

Comme indiqué dans https://github.com/atom/atom/issues/7045, les variables d'environnement peuvent être chargés automatiquement, sans explicite source ~/.bash_profile en utilisant

#!/usr/bin/env bash -l 

au lieu de

#!/bin/bash 
source ~/.bash_profile 

après, dans les deux cas, suit

exec "`dirname \"$0\"`/eclipse" [email protected] 

Cela fonctionne très bien pour m e, merci pour tout le travail précédent.

+1

Combinant cela avec sakras réponse a finalement fait l'affaire –

2

Aucune de ces réponses n'a fonctionné pour moi. vous devez configurer Eclipse -> Préférences -> Terminal -> Arguments défini sur --login Cela demandera à Eclipse de se connecter avec votre compte juste après l'ouverture de Terminal.

Voir capture d'écran:

enter image description here

Référence: https://marketplace.eclipse.org/comment/4259#comment-4259

Questions connexes