31 Stimmen

Starten Sie Mac Eclipse mit festgelegten Umgebungsvariablen

Mein Unternehmen bietet eine auf Eclipse basierende Entwicklungsumgebung an, für die einige Umgebungsvariablen für das zugrunde liegende Toolchain eingerichtet werden müssen, damit mehrere Versionen gleichzeitig installiert und nicht das System übernehmen können.

Ich möchte ein Symbol im Finder oder in der Dock platzieren, das diese Variablen einstellt und dann Eclipse startet, damit Kunden Eclipse nicht versehentlich starten können, ohne dass die Umgebung eingestellt ist. Das habe ich bisher versucht:

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

    Dies wäre eine schöne Möglichkeit, es zu tun, aber ich kann es nicht so machen, dass es zum vorhandenen Pfad hinzufügt (wie export PATH=/myapp/bin:$PATH).

  2. Bash-Skript um Eclipse wickeln:

    Ich habe ein Bash-Skript namens eclipse.command erstellt, um die Umgebung einzustellen und dann Eclipse zu starten. Dies öffnet auch ein Terminalfenster sowie das Eclipse-Symbol und ermöglicht es den Leuten, "Im Dock behalten" für das reine Eclipse. Ich kann eclipse.command nicht auf das Dock legen, da es keine Anwendung ist.

  3. Applescript um eclipse.command wickeln:

    Ein Applescript Wrapper um eclipse.command macht es wie eine App aussehen und verhindert, dass das Terminalfenster erscheint. Leider erhalte ich jetzt ein Dock-Symbol für das Applescript und eines für Eclipse, damit das reine Eclipse immer noch im Dock bleibt.

Irgendwelche Vorschläge? Gehe ich komplett falsch vor?

0 Stimmen

Ziehen Sie das Vanille-Eclipse-Symbol aus dem Dock?

48voto

sakra Punkte 57239

Es gibt eine alternative Lösung, die darin besteht, das ausführbare Programm zu ersetzen, das von MacOS X ausgeführt wird, wenn der Benutzer die Eclipse-Anwendung startet, durch einen Shell-Wrapper, der die Umgebung einrichtet.

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

Öffnen Sie die eclipse.sh in einem Texteditor, und geben Sie den folgenden Inhalt ein:

#!/bin/sh

export ENV_VAR1=value
export ENV_VAR2=value

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

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

In dem Beispiel ENV_VAR1 und ENV_VAR2 sind die einzurichtenden Umgebungsvariablen. Diese Variablen werden für Prozesse sichtbar sein, die von innerhalb von Eclipse aus gestartet werden. Der logger-Befehl wird einfach den Pfad des Eclipse-Ausführbaren zur system.log als Hilfestellung für die Fehlerbehebung protokollieren.

Setzen Sie im Terminal die Ausführungsrechte des Shell-Skripts eclipse.sh, d. h.:

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

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

MacOS X erkennt nicht automatisch, dass sich die Info.plist von Eclipse.app geändert hat. Daher müssen Sie die StartService-Datenbank im Terminal erzwingen, indem Sie den lsregister-Befehl verwenden:

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

Beim nächsten Start von Eclipse.app aus dem Dock oder vom Finder aus sollten die Umgebungsvariablen eingestellt sein.

2 Stimmen

Einfach die beste Option bei weitem! Vielen Dank, funktioniert einwandfrei!!

1 Stimmen

Dies funktioniert anscheinend nicht mehr, zumindest unter OSX Lion mit Eclipse Indigo (3.7).

1 Stimmen

Vielen Dank für diese Antwort! Seit Eclipse Mars muss man /Applications/Eclipse.app verwenden: /System/Library/Frameworks/CoreServices.framework/Frameworks‌​/LaunchServices.fram‌​ework/Support/lsregi‌​ster -v -f /Applications/Eclipse.app

8voto

Chris Fregly Punkte 1390

Ich habe folgendes erstellt:

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

Wenn Sie start-eclipse von der Befehlszeile ausführen, werden alle Umgebungsvariablen übernommen. Auf diese Weise müssen Sie nur einen Satz Umgebungsvariablen für die Befehlszeile und die Eclipse-Umgebung pflegen.

0 Stimmen

Das ist nicht ideal, aber es hat für mich mit OSX Lion und Eclipse 3.7.1 funktioniert.

0 Stimmen

Eine ideale Lösung hätte keine Kompromisse.

0 Stimmen

Nun, die ausgewählte Antwort hat sicherlich Nachteile: Sie müssen verschiedene Sätze von Umgebungsvariablen in der Befehlszeile und Eclipse-Umgebungen pflegen. Dieser Antworter erwähnt dies. Außerdem handelt es sich um eine sehr einfache und einfache Lösung.

6voto

mouviciel Punkte 64583

Schauen Sie sich eine verwandte Frage an: Umgebungsvariablen in Mac OS X.

Im Grunde geht es um die Erstellung einer ~/.MacOSX/environment.plist Datei.

Melden Sie sich ab und wieder an, damit die environment.plist von den .App's übernommen wird

4voto

automatom Punkte 275

Dies hat perfekt in OS X Yosemite funktioniert:

  1. Öffnen Sie /Applications/Automator.
  2. Wenn das Dropdown-Menü erscheint und Sie gefragt werden, welchen Dokumenttyp Sie erstellen möchten, wählen Sie "Anwendung".
  3. Doppelklicken Sie in der Liste zweiter von links auf "Shell-Skript ausführen".
  4. Löschen Sie auf der rechten Seite das automatisch eingefügte "cat" und ersetzen Sie es durch dies:

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

Gehen Sie nun zu Datei->Speichern und speichern Sie die Anwendung in Ihrem Anwendungsverzeichnis. Ich habe sie "Eclipse" mit einem großen 'E' genannt, um keine Konflikte mit dem bereits vorhandenen "eclipse"-Verzeichnis zu haben. Zur Sicherheit können Sie ihr sogar das Eclipse-Symbol geben, indem Sie die echte Eclipse-App auswählen, Befehl-I drücken, das Symbol auswählen, Befehl-C drücken, dann die Automator-"Eclipse"-App auswählen, Befehl-I drücken, das Symbol auswählen und Befehl-V drücken.

Jetzt können Sie die App öffnen oder sogar in Ihr Dock ziehen. Beachten Sie, dass, wenn Sie sie starten, das "echte" Eclipse immer noch als separates Symbol in Ihrem Dock erscheint, aber man kann nicht alles haben. :)

4voto

Ahmed Hammad Punkte 594

Keines der oben genannten hat für mich funktioniert. Du musst Eclipse -> Einstellungen -> Terminal -> Argumente auf --login setzen Das wird Eclipse anweisen, sich mit deinem Konto anzumelden, kurz nachdem das Terminal geöffnet wurde.

Siehe Screenshot:

Bildbeschreibung hier eingeben

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X