2009-05-06 11 views
26

La mia azienda fornisce un ambiente di sviluppo basato su Eclipse che necessita di alcune variabili di ambiente per la toolchain sottostante in modo che più versioni possano essere installate contemporaneamente e non prendere il controllo del sistema.Avvia mac eclip con set di variabili di ambiente

Desidero fornire un'icona nel mirino o nel dock che li imposta, quindi lancia Eclipse in modo che i clienti non possano avviare accidentalmente Eclipse senza che venga impostato l'ambiente. Questo è quello che ho provato finora:

  1. ambiente di impostazione in Info.plist per Eclipse:

    Questo dovrebbe essere un bel modo per farlo ma io non ce la fa aggiungere al già esistente path (come export PATH =/myapp/bin: $ PATH).

  2. bash script di avvolgimento eclissi:

    ho creato uno script bash chiamato eclipse.command per impostare l'ambiente quindi lanciare Eclipse. Apre anche una finestra di terminale come icona di eclissi e consente alle persone di di "Mantieni sul dock" per l'eclissi nuda . Non riesco a mettere eclipse.command sul dock in quanto è non un'applicazione.

  3. Applescript involucro eclipse.command:

    un AppleScript wrapper eclipse.command lo fa apparire come un app e impedisce il terminale finestra che appare. Sfortunatamente I ora ha l'icona di un dock per il codice e uno per Eclipse in modo che possa ancora mantenere l'eclissi nuda sul dock .

Qualche suggerimento? Sto andando in questo modo completamente nel modo sbagliato?

+0

Trascinare l'icona di vaniglia Eclipse dalla base docking? –

risposta

6

Dai un'occhiata a una domanda correlata: Environment variables in Mac OS X.

Fondamentalmente, ciò comporta la creazione di un file ~/.MacOSX/environment.plist.

disconnettersi e accedere in per l'environment.plist per ottenere raccolti da .APP di

+1

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

43

Esiste una soluzione alternativa che consiste nel sostituire l'eseguibile che è gestito da MacOS X quando l'utente avvia l'applicazione Eclipse con un involucro di shell che imposta l'ambiente.

Creare un file di testo vuoto denominato "eclipse.sh" nella directory del pacchetto di applicazioni Eclipse /Applications/eclipse/Eclipse.app/Contents/MacOS.

Aprire l'eclipse.sh in un editor di testo di inserire i seguenti contenuti:

#!/bin/sh 

export ENV_VAR1=value 
export ENV_VAR2=value 

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

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

Nell'esempio ENV_VAR1 e ENV_VAR2 sono le variabili d'ambiente in fase di realizzazione. Queste variabili saranno visibili ai processi avviati da Eclipse. Il comando logger registrerà semplicemente il percorso dell'eseguibile eclipse su system.log come aiuto per il debug.

Nel terminale impostato il flag eseguibile del guscio eclipse.sh script cioè:

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

Apri l'Eclipse.app Info.plist e modificare il valore della chiave CFBundleExecutable da Eclipse per eclipse.sh .

MacOS X non rileva automaticamente che Info.plist di Eclipse.app è stato modificato. Pertanto è necessario forzare aggiornare il database LaunchService nel terminale utilizzando il comando lsregister:

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

La prossima volta che si avvia Eclipse.app dal Dock o dal Finder le variabili di ambiente devono essere impostati.

+2

Semplicemente l'opzione migliore con un ampio margine! Grazie mille, funziona perfettamente !! –

+0

Sembra non funzionare più, almeno in OSX Lion con Eclipse Indigo (3.7). –

+1

@JohnGardner Lavora per me. – sakra

5

ho creato il seguente:

alias start-eclisse = 'aperta /Applications/eclipse/Eclipse.app'

Se si esegue l'avvio eclisse dalla riga di comando, saranno raccolti tutti i Vars env su. In questo modo, hai solo bisogno di mantenere un singolo set di vvv su entrambi gli ambienti di riga di comando ed eclissi.

+0

Questo non è l'ideale, ma ha fatto il trucco per me con OSX Lion ed Eclipse 3.7.1. –

+0

Perché non è l'ideale? Cosa c'è di sbagliato in questo? – Tommy

+0

Una soluzione ideale non avrebbe alcun compromesso. – pohl

1

Link Eclipse doesn't use the path set in .bashrc

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

2. Prossimo mettere le tutte le variabili di sistema in /home/user/.environment_variables di file (qualsiasi tipo di file vuoi)

Il mio assomiglia:

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

3. Ora è possibile eliminare le variabili in .bashrc e mettere linea

source /home/user/.environment_variables 

Tutto funziona bene :) risposta

+0

Questa risposta sembra essere per unix/linux. La domanda originale riguardava macOS. Eclipse su Mac non viene normalmente eseguito da un contesto di shell. – Kenster

+0

@Kenster risposta era per Mac;) 4 anni fa –

3

di Sakra sopra è impressionante, ad eccezione non eredita automaticamente il tuo ambiente bash esistente. Per garantire eclipse.sh raccoglie l'ambiente di bash esistente, modificare eclipse.sh di usare bash, invece di sh e aggiungere una linea per ottenere il tuo attuale ~/.bash_profile così:

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

Impressionante. Posso verificare che questo ha funzionato come dichiarato insieme alla risposta di sopra di sakra – Cuga

3

questo ha funzionato perfettamente in OS X Yosemite :

  1. Aperto/Applicazioni/Automazione.
  2. Quando viene visualizzato il menu a discesa che chiede quale tipo di documento si desidera creare, selezionare "Applicazione".
  3. Nella seconda dall'elenco di sinistra, fare doppio clic su "Esegui script di shell"."
  4. Nel lato destro eliminare il 'gatto' che viene messo lì automaticamente, e sostituirla con questa:

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

Ora vai a File-> Salva, e salvare l'applicazione per il vostro Directory delle Applicazioni. L'ho chiamato "Eclipse" con una "E" maiuscola per non entrare in conflitto con la directory "eclipse" che avevo già. Per buona misura, puoi anche dargli l'icona di Eclipse selezionando l'app di eclissi reale, premendo command-i, selezionando l'icona, premendo command-c, quindi selezionando l'applicazione "Eclipse" del programma di automazione, premendo command-i, selezionando l'icona e premendo command-v.

Ora è possibile aprire l'app o trascinarla sul dock. Nota che se lo avvii, l'eclissi "reale" verrà comunque visualizzata nel dock come icona separata, ma non puoi avere tutto. :)

1

Come sottolineato in https://github.com/atom/atom/issues/7045, le variabili ambientali possono essere caricati automaticamente, senza esplicito source ~/.bash_profile utilizzando

#!/usr/bin/env bash -l 

anziché

#!/bin/bash 
source ~/.bash_profile 

dopo che, in entrambi i casi, segue

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

Funziona alla grande per m e, grazie per tutto il lavoro precedente.

+1

Combinare questo con la risposta di sakra ha finalmente fatto il trucco –

2

Nessuno dei precedenti ha funzionato per me. devi impostare Eclipse -> Preferenze -> Terminale -> Argomenti impostati su --login Questo istruirà Eclipse ad accedere con il tuo account subito dopo aver aperto Terminal.

visualizzare Screenshot:

enter image description here

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

Problemi correlati