PATH-Umgebungsvariable unter Mac OS X und / oder Eclipse

24627
Jason S

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.)

17

12 Antworten auf die Frage

10
Ted Naleid

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 .

Leider scheint das für mich nicht zu funktionieren. thSoft vor 11 Jahren 1
8
user150161

Hatte das gleiche Problem. Hier ist meine Lösung:

  1. Bearbeiten Sie die /etc/pathsDatei, um den gewünschten zusätzlichen Pfad anzugeben.

  2. Führen Sie für eine OSX-Installation /Applications/eclipse/eclipse nicht aus /Applications/eclipse/Eclipse.app

omg Nummer 2 war hier die Lösung für so viel Frustration. Vielen Dank!! Tommy vor 11 Jahren 1
Ich habe mich auf dieser Website registriert, damit ich diese Antwort bestätigen konnte - Punkt 2 hat sie behoben! Iftah vor 8 Jahren 1
Wo finde ich die etc / pfade? John vor 6 Jahren 0
@John `/ etc / pfade` ist der vollständige Pfad der Datei. Sie können Cmd + Shift + G ausführen und dann "/ etc" einfügen und die Eingabetaste drücken. Sie müssen die Datei dort mit dem Namen "Pfade" finden. Sufian vor 6 Jahren 1
8
Martin Peter

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.

Die beste Lösung löst das Problem, indem Sie die Eclipse-Konfiguration in der GUI ändern. pXel vor 7 Jahren 0
Diese Antwort veranlasste mich zu einem Upgrade auf Sauerstoff, und das war alles, was ich brauchte, damit es funktioniert. John vor 6 Jahren 0
6
Jason S

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.

+1 für Ihre letzte Frage. Ich frage mich, wie man Pfadprobleme in OS X * nicht * in Bash oder im Terminal diagnostiziert. fideli vor 14 Jahren 2
Hinweis für zukünftige Googler: Apple fügt jetzt `/ usr / local / bin` zuerst in $ PATH der Benutzer ein. (Siehe [hier] (https://superuser.com/questions/7150/mac-os-x-conventional-places-where-binary-files-should-live/7163?noredirect=1#comment2079827_7163).) Telemachus vor 5 Jahren 0
4
Mike

Wenn Sie sich bei Eclipse befinden (getestet mit "Mars"), können Sie Ihre "Run Configuration" ändern:

  1. Klicken Sie auf "Ausführen" → "Konfigurationen ausführen ...".
  2. Wählen Sie links die entsprechende Laufkonfiguration
  3. Wählen Sie nun den Tab "Umgebung"
  4. Klicken Sie auf "Neu ..."
  5. Geben Sie im Feld "Name" "PATH" ein.
  6. Gehen Sie nun zu Ihrem Terminal, geben Sie "echo $ PATH" ein und kopieren Sie das Ergebnis
  7. Fügen Sie das Ergebnis in das Feld "Wert" ein
  8. Klicken Sie auf "OK".
  9. Stellen Sie sicher, dass Sie auf der Registerkarte "Umgebung" die Option "Umgebung an native Umgebung anhängen" ausgewählt haben.

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(); 
2
derobert

Wahrscheinlich ändert sich eines Ihrer bash-Login-Skripts ( .bashrcoder .bash_profile) $PATH. Wenn Sie Eclipse vom Terminal aus starten, kommt es /usr/local/binin den Pfad?

guter anruf! Wenn ich Eclipse vom Terminal aus laufe, hat es / usr / local / bin im Pfad. Was soll ich jetzt tun? Ist / usr / local / bin nicht etwas, das im Pfad zu allen Anwendungen stehen sollte? Welches Skript kann ich hier einfügen? Wenn ich Eclipse vom Finder oder vom Dock aus ausführe, wird es im Pfad sein. Jason S vor 15 Jahren 1
Ich habe auch kein .bashrc oder .bash_profile in meinem Benutzerverzeichnis. Jason S vor 15 Jahren 1
2
Kathy

Dieser Tipp funktioniert für mich: 1) Fügen Sie den Pfad zu / etc / pfade als root hinzu

Dieser arbeitet für mich, vielen Dank! In meinem Fall lautet der Pfad zum Ausführen von Eclipse /Applications/Eclipse.app/Contents/MacOS/eclipse Tsung-Ting Kuo vor 7 Jahren 0
2
dirk

Alternativ können Sie Ihrem /usr/localVerzeichnis 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) .

Dies hat offenbar nichts mit `$ PATH` oder Verzeichnissen in` $ PATH` zu tun wie `/ usr / local / bin`. Könnten Sie das bitte näher erläutern? pabouk vor 11 Jahren 0
Sie setzen irgendwo in den Pfad einen symbolischen Link, der auf die tatsächliche Position verweist, die sich nicht im Pfad befindet. Ich habe es schon einmal gemacht, es funktioniert für einzelne ausführbare Dateien, nicht für ein Verzeichnis mit Dateien Jason S vor 11 Jahren 0
1
kristi

Sie können den globalen OSX-Pfad ändern, indem Sie /etc/launchd.confIhrem 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

1
bluearrow

Eclipse NEON, Mac OS X 10.11.6
Das Terminal in Eclipse kann den mvnBefehl nicht verwenden . (Ich mache einen Softlink von mvnIn /usr/local/bin)

Temp Lösung:

Rechtsklick /Applications/eclipse-> Paketinhalt anzeigen -> Inhalt -> MacOS -> Doppelklick eclipsezum Starten.

Starten Sie Eclipse auf diese Weise, Eclipse kann alle Pfadeinstellungen erkennen und dann kann ich mvnjetzt den Befehl im Eclipse-Terminal verwenden.

Sie können mit der rechten Maustaste eclipsein diesen Ordner klicken und einen Alias ​​eingeben, um ihn bequem zu starten.

Ich weiß nicht warum. Ich denke, das sollte eine Eclipse BUG sein.