2009-05-06 3 views
26

Meine Firma bietet eine Eclipse-basierte Entwicklungsumgebung, die einige Umgebungsvariablen für die zugrundeliegende Toolchain benötigt, so dass mehrere Versionen gleichzeitig installiert werden können und das System nicht übernehmen.Launch mac eclipse mit Umgebungsvariablen set

Ich möchte ein Symbol im Finder oder im Dock zur Verfügung stellen, das diese dann startet Eclipse, so dass Kunden Eclipse nicht versehentlich starten können, ohne dass die Umgebung eingestellt wird. Dies ist, was ich bisher versucht:

  1. Rahmen Umgebung in Info.plist für Eclipse:

    Dies sollte eine schöne Art und Weise, es zu tun aber ich kann es nicht auf die machen fügen bestehenden Pfad (wie Export PATH =/myapp/bin: $ PATH).

  2. Bash-Skript Verpackung Eclipse:

    Ich habe ein Bash-Skript eclipse.command, um den Umgebung dann Eclipse starten genannt. Dies öffnet ein Terminal-Fenster sowie als Eclipse-Symbol und ermöglicht Menschen "auf Dock" für die nackten Sonnenfinsternis zu halten. Ich kann nicht eclipse.command auf dem Dock als keine Anwendung setzen.

  3. Apple Verpackung eclipse.command:

    ein Applescript-Wrapper um eclipse.command macht es wie eine App aussehen und verhindert, dass das Terminal Fenster erscheint. Leider bekomme ich jetzt ein Dock-Icon für das Applescript und eines für Eclipse, so kann immer noch die bloße Eklipse auf das Dock halten.

Irgendwelche Vorschläge? Tue ich das völlig falsch?

+0

Ziehen Sie die Vanille-Eclipse-Symbol aus dem Dock? –

Antwort

6

Werfen Sie einen Blick auf eine verwandte Frage: Environment variables in Mac OS X.

Grundsätzlich beinhaltet dies die Erstellung einer ~/.MacOSX/environment.plist Datei.

Abmelden und Anmelden für den environment.plist um von

+1

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

43

der .app abgeholt Es ist eine alternative Lösung, die ersetzt die ausführbaren Datei handelt, die von MacOS X ausgeführt wird, wenn der Benutzer die Eclipse-Anwendung mit einem startet Shell Wrapper, der die Umgebung aufbaut.

Erstellen Sie eine leere Textdatei namens "eclipse.sh" im Eclipse-Anwendungspaketverzeichnis /Applications/eclipse/Eclipse.app/Contents/MacOS.

öffnen eclipse.sh in einem Texteditor ein Geben Sie den folgenden Inhalt:

#!/bin/sh 

export ENV_VAR1=value 
export ENV_VAR2=value 

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

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

Im Beispiel ENV_VAR1 und ENV_VAR2 sind die Umgebungsvariablen aufgebaut. Diese Variablen sind für Prozesse sichtbar, die von Eclipse aus gestartet werden. Der Logger-Befehl protokolliert nur den Pfad der Eclipse-Programmdatei zur system.log als Debug-Hilfe.

Im Anschluss stellen Sie die ausführbare Flagge des Shell-Skript eclipse.sh, das heißt:

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

öffnen Eclipse.app Info.plist und den Wert für den Schlüssel CFBundleExecutable von Eclipse ändern eclipse.sh .

MacOS X erkennt nicht automatisch, dass sich die Info.plist der Eclipse.app geändert hat. Deshalb müssen Sie die LaunchService Datenbank im Terminal erzwingen aktualisieren, indem Sie den lsregister Befehl:

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

Das nächste Mal, wenn Sie Eclipse.app aus dem Dock oder aus dem Finder starten sollten die Umgebungsvariablen gesetzt werden.

+2

Einfach die beste Option mit großem Abstand! Vielen Dank, funktioniert einwandfrei !! –

+0

Dies scheint nicht mehr zu funktionieren, zumindest unter OSX Lion mit Eclipse Indigo (3.7). –

+1

@JohnGardner Funktioniert für mich. – sakra

5

Ich habe die folgenden:

alias Start-Eclipse = 'open /Applications/eclipse/Eclipse.app'

Wenn Sie von der Kommandozeile starten-Eclipse ausführen, werden alle env vars abgeholt werden oben. Auf diese Weise müssen Sie nur einen einzigen Satz von env vars in den Befehlszeilen- und Eclipse-Umgebungen verwalten.

+0

Das ist nicht ideal, aber mit OSX Lion und Eclipse 3.7.1 hat es sich gelohnt. –

+0

Warum ist das nicht ideal? Was ist daran falsch? – Tommy

+0

Eine ideale Lösung würde keine Kompromisse eingehen. – pohl

1

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

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

2. Weiter Ihr alle Systemvariablen in der Datei /home/user/.environment_variables setzen (jede Datei Sie wollen)

Mein wie folgt aussieht:

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

3. Jetzt können Sie Ihre Variablen in Bashrc und setzen Linie

source /home/user/.environment_variables 

Alles in Ordnung :) löschen

+0

Diese Antwort scheint für Unix/Linux zu sein. Die ursprüngliche Frage betraf macOS. Eclipse auf Mac wird normalerweise nicht von einem Shell-Kontext ausgeführt. – Kenster

+0

@Kenster Antwort war für Mac;) vor 4 Jahren –

3

Sakras arbeitet Antwort oben genial, außer Es erbt nicht automatisch Ihre bestehende Bash-Umgebung. Um sicherzustellen, eclipse.sh nimmt Ihre bestehende Bash-Umgebung auf, ändern eclipse.sh bash statt sh zu verwenden und eine Zeile in Ihre bestehende ~/.bash_profile so zur Quelle:

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

Awesome. Ich kann überprüfen, dass dies funktioniert, wie gesagt zusammen mit sakras obiger Antwort – Cuga

3

Das funktionierte perfekt in OS X Yosemite :

  1. Öffnen/Anwendungen/Automator.
  2. Wenn die Dropdown-Liste fragt, welche Art von Dokument Sie erstellen möchten, wählen Sie "Anwendung".
  3. Doppelklicken Sie in der Liste von links nach links auf "Run Shell Script."
  4. Auf der rechten Seite löschen Sie die‚Katze‘, die dort automatisch gesetzt wird, und ersetzen Sie es mit diesem:

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

Jetzt zu File-> Save gehen, und speichern Sie die Anwendung auf Ihren Anwendungsverzeichnis Ich habe es "Eclipse" mit einem großen "E" genannt, um nicht mit dem "Eclipse" -Verzeichnis zu kollidieren, das ich bereits hatte. Für ein gutes Maß können Sie ihm sogar das Eclipse-Symbol geben, indem Sie die echte Eclipse-App auswählen Befehl-i, Auswählen des Symbols, Drücken von Befehl-c, dann Auswählen der Automator "Eclipse" -App, Drücken von Befehl-i, Auswählen des Symbols und Drücken des Befehls-v.

Jetzt können Sie die App öffnen oder sogar auf Ihr Dock ziehen. Beachten Sie, dass wenn Sie es starten, die "echte" Sonnenfinsternis immer noch in Ihrem Dock als separates Symbol angezeigt wird, aber Sie können nicht alles haben. :)

1

Wie in https://github.com/atom/atom/issues/7045 wies darauf hin, können die Umgebungsvariablen automatisch geladen werden, ohne explizite source ~/.bash_profile unter Verwendung

#!/usr/bin/env bash -l 

statt

#!/bin/bash 
source ~/.bash_profile 

nach, dass in beiden Fällen folgt

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

Es funktioniert gut für m e, danke für alle bisherigen Arbeiten.

+1

Kombinieren dieses mit sakras Antwort hat schließlich den Trick getan –

2

Keine der oben genannten funktionierte für mich. Sie müssen Eclipse -> Einstellungen -> Terminal -> Argumente auf --login setzen Das wird Eclipse anweisen, sich nach dem Öffnen des Terminals mit Ihrem Konto einzuloggen.

Siehe Screenshot:

enter image description here

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