PATH variabile env su Mac OS X e / o Eclipse


17

Quando stampo il percorso in bash, stampa questo:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Quando eseguo System.out.println (System.getenv ("PATH")); in Java in esecuzione sotto Eclipse, stampa

/usr/bin:/bin:/usr/sbin:/sbin

Come posso capire perché c'è questa discrepanza? Devo aggiungere / usr / local / bin al PERCORSO e renderlo disponibile per le app Java in Eclipse. (nota: non ho apportato modifiche ai percorsi di sistema, quindi questi sono i valori predefiniti impostati dal sistema operativo o forse da una o più delle applicazioni che ho installato.)

Risposte:



9

Per quelli di voi che cercano una risposta anni dopo (Neon, Oxygen):

Alcuni dei miei strumenti nodo e angolare / angolare2 in eclissi non sono riusciti a causa di voci $ PATH mancanti nel terminale MacOS. Gli strumenti utilizzano in modo propizio il terminale eclipse incorporato che non inizia a fornire la shell di login / utente. Quindi è necessario impostare il terminale eclipse nelle proprie preferenze eclipse per iniziare come shell --login al fine di comprendere le impostazioni PATH degli utenti:

Vai a:

Preferences -> Terminal -> Local Terminal

e impostare

Arguments per: --login

apri un nuovo Terminale all'interno di Eclipse e il tuo $ PATH dell'utente dovrebbe essere usato d'ora in poi. Inoltre, tutto ciò che è stato impostato in ~ / .bash_profile verrà eseguito all'apertura di un nuovo Terminale in Eclipse.


La migliore soluzione, risolve il problema semplicemente cambiando la configurazione di eclipse nella GUI.
pXel,

Questa risposta mi ha fatto passare a Oxygen, ed era tutto ciò di cui avevo bisogno per farlo funzionare.
John,

Non ho il sottomenu "Terminale" in Eclipse con la stringa di versione "2019-06 (4.12.0)".
Tsj,

8

Ho avuto lo stesso problema. Ecco la mia soluzione:

  1. Modifica il /etc/pathsfile per includere il percorso aggiuntivo desiderato.

  2. Per un'installazione OSX, non eseguire/Applications/eclipse/eclipse /Applications/eclipse/Eclipse.app


1
omg numero 2 qui era la soluzione a TANTA FRUSTRAZIONE. Grazie!!
Tommy,

1
Mi sono registrato a questo sito Web solo per poter votare questa risposta - l'articolo 2 lo ha riparato!
Iftah,

Dove posso trovare i percorsi / etc?
Giovanni,

1
@John /etc/pathsè il percorso completo del file. Puoi fare Cmd + Maiusc + G e quindi inserire "/ etc" e premere invio / ritorno. È necessario trovare il file lì denominato "percorsi".
Sufian,

6

Ah, ho trovato questa pagina web che dice

Nota: Mac OS X non include / usr / local / bin nel suo PERCORSO predefinito. Pertanto, supponendo che tu stia utilizzando la shell bash predefinita, digita (o includi in / etc / profile) export PATH = / usr / local / bin: $ PATH prima di utilizzare uno di questi strumenti.

È una cosa appropriata / inappropriata da fare? Ottengo diffidenza sulla modifica dei file di sistema se non so davvero cosa sto facendo. / usr / local / bin è scrivibile solo da root, quindi non aprirei un buco di sicurezza, vero?


Strano, ho aggiunto il percorso di esportazione e non ha alcun effetto sulla corsa dell'eclipse dal Dock. Inoltre ho trovato questa pagina sui percorsi e il mio file / etc / percorsi ha

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

eppure quei percorsi non vengono visualizzati in Eclipse ... c'è un modo semplice per creare / trovare un file binario che stampa $ PATH, che potrei eseguire dal Dock, in modo da poter eseguire il debug più facilmente? Non so se Eclipse si aggiri con il percorso.


2
+1 per la tua domanda finale. Mi chiedo come diagnosticare i problemi di percorso in OS X non in bash o nel Terminale.
fideli,

Nota per i futuri googler: Apple ora include il /usr/local/binprimo tra gli utenti $PATH. (Vedi qui .)
Telemaco,

4

Se sei su Eclipse (testato con "Mars"), puoi modificare la "Configurazione di esecuzione":

  1. Fai clic su "Esegui" → "Esegui configurazioni ..."
  2. Scegliere la configurazione di esecuzione appropriata a sinistra
  3. Ora seleziona la scheda "Ambiente"
  4. Fai clic su "Nuovo ..."
  5. Nel campo "Nome", inserisci "PERCORSO"
  6. Ora vai al tuo Terminale, inserisci "echo $ PATH" e copia il risultato
  7. Passato il risultato nel campo "Valore"
  8. Fai clic su "OK"
  9. Nella scheda "Ambiente", assicurati di selezionare "Aggiungi ambiente all'ambiente nativo"

Ora Eclipse utilizza gli stessi valori per la variabile di ambiente PATH del proprio sistema. Ricorda: questo vale solo per la configurazione di esecuzione scelta.

Come già notato nella tua domanda, controlla in Java con:

System.getenv();

2

Molto probabilmente, uno dei tuoi script di accesso bash ( .bashrco .bash_profile) sta cambiando $PATH. Se avvii Eclipse dal terminale, arriva /usr/local/binsul suo percorso?


1
Ottima scelta! Se eseguo Eclipse dal terminale, ha / usr / local / bin nel percorso. Ora cosa dovrei fare? / Usr / local / bin non è qualcosa che dovrebbe essere nel percorso di tutte le applicazioni? in quale script posso inserire questo, in modo che se eseguo Eclipse dal Finder o dal Dock, sarà nel percorso?
Jason S,

1
Inoltre non ho un .bashrc o .bash_profile nella mia directory utente.
Jason S,

2

Questo suggerimento sopra funziona per me: 1) aggiungi il percorso a / etc / percorsi come root 2) avvia eclissi con $ ECL_HOME / Eclipse.app / Contenuto / MacOS / eclipse invece di $ ECL_HOME / Eclipse.app


Questo funziona per me, grazie mille! Nel mio caso, il percorso per eseguire Eclipse è /Applications/Eclipse.app/Contents/MacOS/eclipse
Tsung-Ting Kuo

2

In alternativa potresti semplicemente aggiungere un link simbolico alla tua /usr/localdirectory che punta alla tua applicazione.

Ad esempio fare come root:

ln -s /Applications/PhantomJS/phantomjs-1.9.2-macosx/bin/phantomjs / usr / local / phantomjs

Questo mi ha aiutato a eseguire (mvn test) l' applicazione PhantomJS esterna da un progetto Maven in Eclipse.


Questo non sembra avere nulla a che fare con $PATHo directory $PATHsimili /usr/local/bin. Potresti spiegare per favore in maggiori dettagli?
pabouk,

si mette un collegamento simbolico da qualche parte nel percorso, che punta alla posizione effettiva che non si trova nel percorso. L'ho già fatto prima, funziona per singoli eseguibili, non funziona per una directory piena di file
Jason S,


1

Eclipse NEON, mac OS X 10.11.6
Il terminale in Eclipse non può usare il mvncomando. (Faccio un collegamento software di mvnin /usr/local/bin)

Soluzione temporanea:

Fare clic con il tasto destro /Applications/eclipse-> mostra contenuto pacchetto -> contenuto -> MacOS -> doppio clic eclipseper iniziare.

Avvia Eclipse in questo modo, Eclipse può rilevare tutte le impostazioni del percorso e quindi posso usare il mvncomando nel terminale Eclipse ora.

È possibile fare clic eclipsecon il tasto destro in questa cartella e creare un alias per avviarlo comodamente.

Non so perché adesso. Penso che questo dovrebbe essere un BUG di eclissi.


0

modifica ~/.bash_profileper includere il percorso

invece di iniziare nel launchpad,

aprire il terminale e avviarlo come

/Applications/Eclipse.app/Contents/MacOS/eclipse

Questo ha fatto il trucco per me.


0

Riunire alcune risposte e aggiornare a qualcosa di semplice:

  1. Fai clic con il tasto destro del mouse su Eclipse.app e scegli "Mostra contenuto pacchetto"
  2. Passare a Contenuti / MacOS per trovare "eclissi".
  3. Fare clic con il tasto destro e scegliere "Crea alias" oppure trascinarlo tenendo premuto il comando e l'opzione.
  4. Metti l'alias in un posto comodo, come in Applicazioni.
  5. Fare doppio clic per avviare.
  6. Non c'è nessun passaggio 6!

Questo non solo aprirà una comoda finestra Terminale che mostra l'output di Eclipse non elaborato, ma adotterà automaticamente qualsiasi percorso sia stato impostato nella shell di accesso.

Così si può utilizzare uno dei metodi normali per impostare il percorso (modifica /etc/pathso ~/.bash_profileo semplicemente installando strumento a riga di comando ben educati come mbed), e la preoccupazione non oltre. Se puoi chiamarlo dal Terminale, anche Eclipse può chiamarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.