Variable PATH env sur Mac OS X et / ou Eclipse


17

Lorsque j'imprime le chemin dans bash, il affiche ceci:

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

Lorsque j'exécute System.out.println (System.getenv ("PATH")); en Java fonctionnant sous Eclipse, il imprime

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

Comment puis-je comprendre pourquoi il y a cet écart? J'ai besoin d'ajouter / usr / local / bin au PATH et de le rendre disponible aux applications Java sous Eclipse. (Remarque: je n'ai apporté aucune modification aux chemins système, ce sont donc les valeurs par défaut définies par le système d'exploitation ou peut-être par une ou plusieurs des applications que j'ai installées.)

Réponses:



9

Pour ceux d'entre vous qui cherchent une réponse des années plus tard (néon, oxygène):

Certains de mes outils de nœud et angulaire / angulaire2 dans eclipse ont échoué en raison de l'absence d'entrées $ PATH dans le terminal MacOS. Votre outillage utilise de manière appropriée le terminal Eclipse intégré qui ne commence pas à fournir votre login / shell utilisateur. Vous devez donc définir le terminal eclipse dans vos préférences eclipse pour démarrer en tant que shell --login afin de comprendre les paramètres PATH de vos utilisateurs:

Aller à:

Preferences -> Terminal -> Local Terminal

Et mettre

Arguments à: --login

ouvrez un nouveau terminal dans Eclipse et $ PATH de votre utilisateur devrait être utilisé à partir de maintenant. De plus, tout ce que vous avez configuré dans ~ / .bash_profile s'exécutera lors de l'ouverture d'un nouveau terminal dans Eclipse.


La meilleure solution résout le problème en changeant simplement la configuration de l'éclipse dans l'interface graphique.
pXel

Cette réponse m'a fait passer à Oxygen, et c'était tout ce dont j'avais besoin pour le faire fonctionner.
John

Je n'ai pas le sous-menu "Terminal" dans Eclipse avec la chaîne de version "2019-06 (4.12.0)".
tsj

8

Eu le même problème. Voici ma solution:

  1. Modifiez le /etc/pathsfichier pour inclure le chemin supplémentaire souhaité.

  2. Pour une installation OSX, exécutez /Applications/eclipse/eclipse pas /Applications/eclipse/Eclipse.app


1
omg numéro 2 ici était la solution à TELLEMENT DE FRUSTRATION. Merci!!
Tommy

1
Je me suis inscrit sur ce site Web juste pour pouvoir voter en faveur de cette réponse - l'élément # 2 l'a corrigé!
Iftah

Où puis-je trouver les chemins etc /?
John

1
@John /etc/pathsest le chemin complet du fichier. Vous pouvez faire Cmd + Shift + G puis y mettre "/ etc" et appuyer sur Entrée / Retour. Vous devez y trouver le fichier nommé "chemins".
Sufian

6

Aha, j'ai trouvé cette page Web qui dit

Remarque: Mac OS X n'inclut pas / usr / local / bin dans son CHEMIN par défaut. Par conséquent, en supposant que vous utilisez le shell bash par défaut, veuillez saisir (ou inclure dans / etc / profile) export PATH = / usr / local / bin: $ PATH avant d'utiliser l'un de ces outils.

Est-ce une chose appropriée / inappropriée à faire? Je me méfie de l'édition des fichiers système, sauf si je sais vraiment ce que je fais. / usr / local / bin n'est accessible en écriture que par racine, donc je n'ouvrirais pas une faille de sécurité, n'est-ce pas?


Bizarrement, j'ai ajouté le chemin d'exportation, et cela n'a aucun effet sur l'éclipse exécutée à partir du Dock. J'ai aussi trouvé cette page sur les chemins et mon fichier / etc / chemins a

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

Et pourtant, ces chemins n'apparaissent pas dans Eclipse ... Y a-t-il un moyen facile de créer / trouver un fichier binaire qui imprime $ PATH, que je pourrais exécuter à partir du Dock, donc je pourrais déboguer cela plus facilement? Je ne sais pas si Eclipse se faufile avec le chemin.


2
+1 pour votre dernière question. Je me demande comment diagnostiquer les problèmes de chemin dans OS X pas dans bash ou le terminal.
fideli

Remarque pour les futurs Googlers: Apple inclut désormais le /usr/local/binpremier dans les utilisateurs $PATH. (Voir ici .)
Télémaque

4

Si vous êtes sur Eclipse (testé avec "Mars"), vous pouvez changer votre "Run Configuration":

  1. Cliquez sur "Exécuter" → "Exécuter les configurations ..."
  2. Choisissez la configuration d'exécution appropriée sur la gauche
  3. Maintenant, choisissez l'onglet "Environnement"
  4. Cliquez sur "Nouveau ..."
  5. Dans le champ "Nom", entrez "CHEMIN"
  6. Maintenant, allez dans votre terminal, entrez "echo $ PATH" et copiez le résultat
  7. Passé le résultat dans le champ "Valeur"
  8. Cliquez sur "OK"
  9. De retour dans l'onglet "Environnement", assurez-vous de sélectionner "Ajouter l'environnement à l'environnement natif"

Maintenant, Eclipse utilise les mêmes valeurs pour la variable d'environnement PATH que votre système. N'oubliez pas: cela n'est vrai que pour la configuration d'exécution que vous avez choisie.

Comme déjà indiqué dans votre question, vérifiez en Java avec:

System.getenv();

2

Très probablement, l'un de vos scripts de connexion bash ( .bashrcou .bash_profile) est en train de changer $PATH. Si vous démarrez Eclipse depuis le terminal, est-ce qu'il se met /usr/local/binsur son chemin?


1
bon appel! Si j'exécute Eclipse depuis le terminal, il a / usr / local / bin dans le chemin. Maintenant, que dois-je faire? / Usr / local / bin n'est-il pas quelque chose qui devrait être dans le chemin de toutes les applications? dans quel script puis-je le mettre, de sorte que si j'exécute Eclipse depuis le Finder ou depuis le Dock, il sera dans le chemin?
Jason S

1
De plus, je n'ai pas de .bashrc ou .bash_profile dans mon répertoire utilisateur.
Jason S

2

Cette astuce ci-dessus fonctionne pour moi: 1) ajouter un chemin à / etc / chemins en tant que racine 2) démarrer eclipse avec $ ECL_HOME / Eclipse.app / Contents / MacOS / eclipse au lieu de $ ECL_HOME / Eclipse.app


Celui-ci fonctionne pour moi, merci beaucoup! Dans mon cas, le chemin pour exécuter Eclipse est /Applications/Eclipse.app/Contents/MacOS/eclipse
Tsung-Ting Kuo

2

Alternativement, vous pouvez simplement ajouter un lien symbolique à votre /usr/localrépertoire pointant vers votre application.

Par exemple, faites comme root:

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

Cela m'a aidé à exécuter (test mvn) l' application externe PhantomJS à partir d'un projet Maven dans Eclipse.


Cela ne semble avoir rien à voir avec $PATHou des répertoires $PATHsimilaires /usr/local/bin. Pourriez-vous s'il vous plaît expliquer plus en détail?
pabouk

vous placez un lien symbolique quelque part dans le chemin, qui pointe vers l'emplacement réel qui n'est pas dans le chemin. Je l'ai déjà fait, cela fonctionne pour les exécutables simples, ne fonctionne pas pour un répertoire plein de fichiers
Jason S


1

Eclipse NEON, mac OS X 10.11.6
Le terminal dans Eclipse ne peut pas utiliser la mvncommande (je fais un lien logiciel de mvnin /usr/local/bin)

Solution temporaire:

Clic droit /Applications/eclipse-> afficher le contenu du package -> contenu -> MacOS -> double-cliquer eclipsepour démarrer.

Démarrez Eclipse de cette façon, Eclipse peut détecter tous les paramètres de chemin et puis je peux utiliser la mvncommande dans le terminal Eclipse maintenant.

Vous pouvez cliquer avec le bouton droit eclipsedans ce dossier et créer un alias pour le démarrer facilement.

Je ne sais pas pourquoi maintenant. Je pense que cela devrait être un BUG éclipse.


0

modifier le ~/.bash_profile pour inclure le chemin

au lieu de commencer dans le tableau de bord,

ouvrir le terminal et le démarrer comme

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

Cela a fait l'affaire pour moi.


0

Réunir quelques réponses et mettre à jour quelque chose de facile:

  1. Cliquez avec le bouton droit sur Eclipse.app et choisissez "Afficher le contenu du package"
  2. Accédez à Contents / MacOS pour trouver "éclipse".
  3. Faites un clic droit et choisissez "Créer un alias", ou faites-le glisser tout en maintenant la commande et l'option.
  4. Mettez l'alias dans un endroit pratique, comme dans les applications.
  5. Double-cliquez pour lancer.
  6. Il n'y a pas d'étape 6!

Non seulement cela ouvrira une fenêtre de terminal pratique montrant la sortie brute d'Eclipse, mais elle adoptera automatiquement le chemin que vous aurez défini dans votre shell de connexion.

Ainsi , vous pouvez utiliser l' une des méthodes normales pour définir votre chemin (édition /etc/pathsou ~/.bash_profileou tout simplement installer l' outil de ligne de commande bien comportés comme mbed), et ne vous inquiétez plus. Si vous pouvez l'appeler depuis le terminal, Eclipse peut également l'appeler.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.