Змінна PATH env на Mac OS X та / або Eclipse


17

Коли я роздруковую шлях у bash, він друкує це:

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

Коли я запускаю System.out.println (System.getenv ("PATH")); на Java, що працює під Eclipse, вона друкує

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

Як я можу зрозуміти, чому виникає така невідповідність? Мені потрібно додати / usr / local / bin до PATH та зробити його доступним для додатків Java під Eclipse. .

Відповіді:



9

Тим, хто шукає відповідь через роки (Неон, Кисень):

Деякі з моїх вузлів та angular / angular2 інструментальних засобів у затемненні не вдалося через відсутність записів $ PATH у терміналі MacOS. У вашому інструменті широко використовується вбудований термінал затемнення, який не починає надавати оболонку для входу / користувача. Тому вам потрібно встановити термінал затемнення в налаштуваннях затемнення, щоб він починався з оболонки --login, щоб містити налаштування PATH для своїх користувачів:

Йти до:

Preferences -> Terminal -> Local Terminal

і встановити

Arguments до: --login

відкрийте новий термінал всередині Eclipse і $ PATH вашого користувача відтепер слід використовувати. Також все, що ви налаштували в ~ / .bash_profile, буде працювати під час відкриття нового терміналу в Eclipse.


Найкраще рішення, вирішує проблему лише шляхом зміни конфігурації затемнення в графічному інтерфейсі.
pXel

Ця відповідь змусила мене перейти на кисень, і це було все, що мені потрібно, щоб він працював.
Джон

У мене немає підменю "Термінал" у Eclipse із рядком версії "2019-06 (4.12.0)".
tsj

8

Була така ж проблема. Ось моє рішення:

  1. Відредагуйте /etc/pathsфайл, щоб включити бажаний додатковий шлях.

  2. Для встановлення OSX не запустіть/Applications/eclipse/eclipse /Applications/eclipse/Eclipse.app


1
omg номер 2 тут було рішенням ТАКОЖІ ФРУСТРАЦІЇ. Спасибі!!
Томмі

1
Я зареєструвався на цьому веб-сайті просто для того, щоб я міг підтвердити цю відповідь - пункт №2 виправив її!
Іфтах

Де я можу знайти тощо / шляхи?
Джон

1
@John /etc/paths- це повний шлях до файлу. Ви можете зробити Cmd + Shift + G, а потім вставити "/ etc" у нього та натиснути клавішу enter / return. Ви повинні знайти там файл з назвою "paths".
Суфіан

6

Ага, я знайшов цю веб-сторінку, яка говорить

Примітка: Mac OS X не включає / usr / local / bin в стандартний PATH. Тому, припускаючи, що ви використовуєте оболонку bash за замовчуванням, введіть (або включіть у / etc / profile) export PATH = / usr / local / bin: $ PATH, перш ніж використовувати будь-який із цих інструментів.

Це правильна / невідповідна річ? Мені доступно редагувати системні файли, якщо я дійсно не знаю, що я роблю. / usr / local / bin записується лише коренем, щоб я не відкривав дірку безпеки, чи не так?


Як не дивно, я додав шлях експорту, і він не впливає на затемнення з Дока. Також я знайшов цю сторінку про шляхи та мій файл / etc / paths

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

і все ж ці шляхи не відображаються в затемненні ... чи існує простий спосіб створити / знайти двійковий файл, який виводить $ PATH, щоб я міг запуститись із Dock, щоб я міг налагодити це простіше? Я не знаю, чи затемнення затьмарюється зі шляху.


2
+1 для вашого остаточного запитання. Мені цікаво, як діагностувати проблеми із шляхами в OS X не в bash чи терміналі.
fideli

Примітка для майбутніх службовців Google: Apple /usr/local/binвперше є серед користувачів $PATH. (Дивіться тут .)
Телемах

4

Якщо ви перебуваєте на Eclipse (тестується на "Mars"), ви можете змінити "Запустити конфігурацію":

  1. Клацніть на "Виконати" → "Запустити конфігурації ..."
  2. Виберіть відповідну конфігурацію запуску зліва
  3. Тепер виберіть вкладку "Навколишнє середовище"
  4. Натисніть "Створити ..."
  5. У полі "Ім'я" введіть "PATH"
  6. Тепер перейдіть до свого терміналу, введіть "echo $ PATH" і скопіюйте результат
  7. Вставте результат у поле «Значення»
  8. Натисніть "ОК"
  9. Повернувшись до вкладки "Навколишнє середовище", переконайтесь, що ви вибрали "Додавати середовище до рідного середовища"

Тепер Eclipse використовує ті самі значення для змінної середовища PATH, що і ваша система. Пам'ятайте: це справедливо лише для вибраної конфігурації запуску.

Як уже зазначалося у вашому запитанні, перевірте в Java за допомогою:

System.getenv();

2

Швидше за все, один із ваших скриптів ( .bashrcабо .bash_profile) для входу в баш змінюється $PATH. Якщо ви запускаєте Eclipse з терміналу, чи стає він /usr/local/binна своєму шляху?


1
гарний дзвінок! Якщо я запускаю Eclipse з терміналу, він має / usr / local / bin на шляху. Тепер що мені робити? Чи не / usr / local / bin є чимось, що має бути на шляху до всіх програм? в який сценарій я можу це вкласти, так що якщо я запускаю Eclipse з Finder або з Dock, він буде на шляху?
Jason S

1
Також у мене в каталозі користувачів немає .bashrc або .bash_profile.
Jason S

2

Ця порада вище для мене працює: 1) додати шлях до / etc / paths як корінь 2) почати затемнення за допомогою $ ECL_HOME / Eclipse.app / Contents / MacOS / eclipse замість $ ECL_HOME / Eclipse.app


Цей для мене працює, дуже дякую! У моєму випадку шлях запуску Eclipse - це /Applications/Eclipse.app/Contents/MacOS/eclipse
-Ting Kuo

2

Крім того, ви можете просто додати символьний посилання до /usr/localкаталогу, що вказує на вашу заявку.

Наприклад, зробити так root:

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

Це допомогло мені запустити (тест на mvn) зовнішній додаток PhantomJS в рамках проекту Maven в Eclipse.


Це, схоже, не має нічого спільного з $PATHкаталогіми $PATHтощо /usr/local/bin. Чи можете ви поясніть, будь ласка, детальніше?
пабук

ви поміщаєте символічне посилання десь на шляху, яке вказує на фактичне місце розташування, якого немає на шляху. Я робив це раніше, він працює для окремих виконуваних файлів, не працює для каталогу, повного файлів
Jason S


1

Eclipse NEON, mac OS X 10.11.6
Термінал у Eclipse не може використовувати mvnкоманду. (Я роблю одну м'яку посилання mvnв /usr/local/bin)

Тимчасове рішення:

Клацніть правою кнопкою миші /Applications/eclipse-> показати вміст пакета -> вміст -> MacOS -> двічі клацніть, eclipseщоб почати.

Почніть Eclipse таким чином, Eclipse може виявити всі налаштування шляху, і тоді я можу використовувати mvnкоманду в терміналі Eclipse зараз.

Ви можете натиснути правою кнопкою миші eclipseв цій папці і зробити псевдонім, щоб запустити її зручно.

Я не знаю, чому саме зараз. Я думаю, це повинно бути одне затемнення БУГ.


0

відредагуйте, ~/.bash_profileщоб включити шлях

замість запуску в стартовій панелі,

відкрити термінал і запустити його як

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

Це зробило для мене трюк.


0

Збір разом декількох відповідей та оновлення до чогось легкого:

  1. Клацніть правою кнопкою миші Eclipse.app та виберіть "Показати зміст пакета"
  2. Перейдіть до Змісту / MacOS, щоб знайти "затемнення".
  3. Клацніть правою кнопкою миші та виберіть "Зробити псевдонім", або перетягніть його, утримуючи команду та опцію.
  4. Поставте псевдонім кудись зручно, як, наприклад, у програмах Програми.
  5. Двічі клацніть для запуску.
  6. Крок 6 не існує!

Це не тільки відкриє зручне вікно терміналу, що показує необроблений вихід Eclipse, воно автоматично сприйме будь-який шлях, який ви встановили у своїй оболонці входу.

Таким чином , ви можете використовувати будь-який з звичайних методів , щоб встановити шлях (редагування /etc/pathsабо ~/.bash_profileабо просто установка добре поводилися інструмент командного рядка , як mbed), і турбуватися нема далі. Якщо ви можете зателефонувати йому з терміналу, Eclipse може також зателефонувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.