Wenn Sie unter OSX eine systemweite Variable festlegen möchten, müssen Sie diese in Ihre Datei ~ / .MacOSX / environment.plist einfügen.
Weitere Informationen finden Sie auf dieser Seite auf der Apple-Website .
Wenn ich den Pfad in Bash ausdrucken, wird Folgendes ausgegeben:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Beim Ausführen von System.out.println (System.getenv ("PATH")); In Java wird unter Eclipse ausgeführt, es wird gedruckt
/usr/bin:/bin:/usr/sbin:/sbin
Wie kann ich herausfinden, warum es diese Diskrepanz gibt? Ich muss / usr / local / bin zum PATH hinzufügen und Java-Apps unter Eclipse zur Verfügung stellen. (Hinweis: Ich habe keine Systempfadänderungen vorgenommen. Es handelt sich dabei also um die Standardeinstellungen, die vom Betriebssystem oder möglicherweise von einer oder mehreren der installierten Anwendungen festgelegt wurden.)
Wenn Sie unter OSX eine systemweite Variable festlegen möchten, müssen Sie diese in Ihre Datei ~ / .MacOSX / environment.plist einfügen.
Weitere Informationen finden Sie auf dieser Seite auf der Apple-Website .
Hatte das gleiche Problem. Hier ist meine Lösung:
Bearbeiten Sie die /etc/paths
Datei, um den gewünschten zusätzlichen Pfad anzugeben.
Führen Sie für eine OSX-Installation /Applications/eclipse/eclipse
nicht aus /Applications/eclipse/Eclipse.app
Für diejenigen, die nach Jahren eine Antwort suchen (Neon, Sauerstoff):
Einige meiner Knoten- und Winkel- / Winkel2-Werkzeuge in Eclipse sind aufgrund fehlender $ PATH-Einträge im MacOS-Terminal fehlgeschlagen. Ihr Tool verwendet wahrscheinlich das eingebettete Eclipse-Terminal, das Ihre Login- / Benutzer-Shell nicht zur Verfügung stellt. Sie müssen also das Eclipse-Terminal in den Eclipse-Einstellungen so einstellen, dass es als --login-Shell startet, um die PATH-Einstellungen Ihrer Benutzer zu definieren:
Gehe zu:
Preferences -> Terminal -> Local Terminal
und setzen
Arguments
zu: --login
Öffnen Sie ein neues Terminal in Eclipse und der $ PATH Ihres Benutzers sollte ab sofort verwendet werden. Alles, was Sie in ~ / .bash_profile eingerichtet haben, wird ausgeführt, wenn Sie ein neues Terminal in Eclipse öffnen.
Aha, ich habe diese Webseite gefunden, auf der steht
Hinweis: Mac OS X enthält / usr / local / bin nicht in seinem Standardpfad PATH. Wenn Sie die Standard-Bash-Shell verwenden, geben Sie (oder fügen Sie sie in / etc / profile ein) export PATH = / usr / local / bin: $ PATH ein, bevor Sie eines dieser Tools verwenden.
Ist dies eine angemessene / unangemessene Sache? Das Bearbeiten von Systemdateien macht mir Angst, wenn ich nicht wirklich weiß, was ich mache. / usr / local / bin kann nur von root beschrieben werden, also würde ich keine Sicherheitslücke öffnen, oder?
Seltsam, ich habe den Exportpfad hinzugefügt, und dies hat keine Auswirkungen auf den Eclipse-Lauf vom Dock. Ich habe auch diese Seite über Pfade und meine / etc / path-Datei gefunden
/usr/bin /bin /usr/sbin /sbin /usr/local/bin
und doch erscheinen diese Pfade nicht in Eclipse ... gibt es eine einfache Möglichkeit, eine binäre Datei zu erstellen / zu finden, die $ PATH ausgibt, die ich vom Dock aus ausführen könnte, damit ich das Problem leichter beheben kann? Ich weiß nicht, ob Eclipse sich mit dem Pfad herumtreibt.
Wenn Sie sich bei Eclipse befinden (getestet mit "Mars"), können Sie Ihre "Run Configuration" ändern:
Jetzt verwendet Eclipse dieselben Werte für die Umgebungsvariable PATH wie Ihr System. Denken Sie daran: Dies gilt nur für die von Ihnen gewählte Laufkonfiguration.
Wie bereits in Ihrer Frage erwähnt, überprüfen Sie Java mit:
System.getenv();
Wahrscheinlich ändert sich eines Ihrer bash-Login-Skripts ( .bashrc
oder .bash_profile
) $PATH
. Wenn Sie Eclipse vom Terminal aus starten, kommt es /usr/local/bin
in den Pfad?
Dieser Tipp funktioniert für mich: 1) Fügen Sie den Pfad zu / etc / pfade als root hinzu
Alternativ können Sie Ihrem /usr/local
Verzeichnis lediglich einen symbolischen Link hinzufügen, der auf Ihre Anwendung verweist.
ZB tun als root
:
ln -s /Applications/PhantomJS/phantomjs-1.9.2-macosx/bin/phantomjs / usr / local / phantomjs
Dies half mir, die externe PhantomJS- Anwendung in einem Maven-Projekt in Eclipse auszuführen (mvn test) .
Sie können den globalen OSX-Pfad ändern, indem Sie /etc/launchd.conf
Ihrem Computer eine Zeile hinzufügen und neu starten .
setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Funktioniert in OSX 10.8 und 10.9
https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x/277034#277034
Eclipse NEON, Mac OS X 10.11.6
Das Terminal in Eclipse kann den mvn
Befehl nicht verwenden . (Ich mache einen Softlink von mvn
In /usr/local/bin
)
Temp Lösung:
Rechtsklick /Applications/eclipse
-> Paketinhalt anzeigen -> Inhalt -> MacOS -> Doppelklick eclipse
zum Starten.
Starten Sie Eclipse auf diese Weise, Eclipse kann alle Pfadeinstellungen erkennen und dann kann ich mvn
jetzt den Befehl im Eclipse-Terminal verwenden.
Sie können mit der rechten Maustaste eclipse
in diesen Ordner klicken und einen Alias eingeben, um ihn bequem zu starten.
Ich weiß nicht warum. Ich denke, das sollte eine Eclipse BUG sein.