मैक ओएस एक्स और / या ग्रहण पर पैठ एन वी चर


17

जब मैं रास्ते को काटता हूं, तो यह प्रिंट करता है:

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

जब मैं System.out.println (System.getenv ("PATH")) चलाता हूं; जावा में ग्रहण के तहत चल रहा है, यह प्रिंट करता है

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

मैं यह कैसे पता लगा सकता हूं कि यह विसंगति क्यों है? मुझे PATH में / usr / लोकल / बिन जोड़ने और ग्रहण के तहत जावा एप्लिकेशन को उपलब्ध कराने की आवश्यकता है। (ध्यान दें: मैंने कोई संशोधन सिस्टम पथ नहीं बनाया है, इसलिए ये OS द्वारा निर्धारित डिफॉल्ट हैं या शायद एक या एक से अधिक एप्लिकेशन जो मैंने इंस्टॉल किए हैं।)

जवाबों:


10

यदि आप OSX पर एक वैरिएबल सिस्टम सेट करना चाहते हैं तो आपको इसे अपनी ~ / .MacOSX / environment.plist फाइल में डालना होगा।

अधिक विस्तार के लिए ऐप्पल वेबसाइट पर इस पृष्ठ को देखें ।


1
दुर्भाग्य से, यह मेरे लिए काम नहीं करता है।
thSoft

9

आप में से एक उत्तर के लिए वर्षों से देख रहे हैं (नियॉन, ऑक्सीजन):

ग्रहण में मेरे कुछ नोड और कोणीय / कोणीय 2 टूलिंग मैकओएस टर्मिनल में $ PATH प्रविष्टियों के लापता होने के कारण विफल रहे। आपका टूलिंग एम्बेडेड एक्लिप्स टर्मिनल का उपयोग करता है जो आपके लॉगिन / उपयोगकर्ता शेल को प्रदान करना शुरू नहीं करता है। इसलिए आपको अपने उपयोगकर्ताओं की PATH सेटिंग को शामिल करने के लिए ग्रहण की प्राथमिकताओं को ग्रहण की प्राथमिकताओं के रूप में शुरू करने की आवश्यकता है --login shell:

के लिए जाओ:

Preferences -> Terminal -> Local Terminal

और सेट करें

Arguments सेवा: --login

ग्रहण के अंदर एक नया टर्मिनल खोलें और आपके उपयोगकर्ता का $ PATH अभी से उपयोग किया जाना चाहिए। साथ ही आपने जो कुछ भी ~ ~ .bash_profile में स्थापित किया है, वह ग्रहण में एक नया टर्मिनल खोलने पर चलेगा।


सबसे अच्छा समाधान, जीयूआई में केवल ग्रहण कॉन्फ़िगरेशन को बदलकर समस्या को हल करता है।
pXel

इस जवाब ने मुझे ऑक्सीजन में अपग्रेड कर दिया, और मुझे यह काम करने की जरूरत थी।
जॉन

मेरे पास संस्करण स्ट्रिंग "2019-06 (4.12.0)" के साथ ग्रहण में "टर्मिनल" सबमेनू नहीं है।
tsj

8

वही समस्या थी। यहाँ मेरा समाधान है:

  1. /etc/pathsवांछित अतिरिक्त पथ को शामिल करने के लिए फ़ाइल को संपादित करें ।

  2. OSX इंस्टॉलेशन के लिए, रन /Applications/eclipse/eclipse न करें /Applications/eclipse/Eclipse.app


1
omg नंबर 2 यहाँ पर SO SOU FRUSTRATION का समाधान था। धन्यवाद!!
टॉमी

1
मैंने इस वेबसाइट पर पंजीकरण किया है, इसलिए मैं इस उत्तर को बढ़ा सकता हूं - आइटम # 2 ने इसे ठीक कर दिया!
इफ्ता

मुझे आदि / रास्ते कहां मिल सकते हैं?
जॉन

1
@ जॉन /etc/pathsफ़ाइल का पूर्ण पथ है। आप Cmd + Shift + G कर सकते हैं और फिर उसमें "/ etc" डालें और एंटर / रिटर्न दबाएँ। आपको "पथ" नाम की फ़ाइल मिलनी चाहिए।
सूफियान

6

अहा, मुझे यह वेबपृष्ठ मिला है जो कहता है

नोट: मैक ओएस एक्स अपने डिफ़ॉल्ट पथ में / usr / स्थानीय / बिन शामिल नहीं करता है। इसलिए, मान लें कि आप डिफ़ॉल्ट बैश शेल का उपयोग कर रहे हैं, कृपया इनमें से किसी भी टूल का उपयोग करने से पहले कृपया PATH = / usr / local / bin: $ PATH निर्यात करें (/ / / / प्रोफाइल में शामिल करें)।

क्या यह उचित / अनुचित बात है? जब तक मैं वास्तव में नहीं जानता कि मैं क्या कर रहा हूं, मुझे संपादन सिस्टम फ़ाइलों का लाभ मिलता है। / usr / लोकल / बिन केवल रूट द्वारा राइट करने योग्य है इसलिए मैं एक सुरक्षा छेद नहीं खोलूंगा, क्या मैं करूंगा?


अजीब, मैंने निर्यात पथ को जोड़ा, और इसका डॉक से चलने वाले ग्रहण पर कोई प्रभाव नहीं है। इसके अलावा मुझे पथ और मेरे / etc / पथ फ़ाइल के बारे में यह पृष्ठ मिला है

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

और फिर भी उन रास्तों पर ग्रहण दिखाई नहीं देता ... क्या बाइनरी फ़ाइल बनाने / खोजने के लिए एक आसान तरीका है जो $ PATH को प्रिंट करता है, कि मैं डॉक से भाग सकता हूं, इसलिए मैं इसे और आसानी से डीबग कर सकता हूं? मुझे नहीं पता कि क्या ग्रहण रास्ते के आसपास घूमता है।


2
अपने अंतिम प्रश्न के लिए +1। मैं ओएस एक्स में पथ मुद्दों के विश्लेषण का तरीका सोच रहा हूँ नहीं बैश या टर्मिनल में।
फिदेली

भविष्य के Googlers के लिए ध्यान दें: Apple अब /usr/local/binपहले उपयोगकर्ताओं में शामिल है ' $PATH। ( यहां देखें ।)
टेलीमेकस

4

यदि आप ग्रहण पर हैं ("मंगल" के साथ परीक्षण किया गया), तो आप अपना "रन कॉन्फ़िगरेशन" बदल सकते हैं:

  1. "रन" → "रन कॉन्फ़िगरेशन ..." पर क्लिक करें
  2. बाईं ओर उपयुक्त रन कॉन्फ़िगरेशन चुनें
  3. अब टैब "पर्यावरण" चुनें
  4. "नया ..." पर क्लिक करें
  5. "नाम" फ़ील्ड में, "पथ" दर्ज करें
  6. अब अपने टर्मिनल पर जाएं, "इको $ पाथ" दर्ज करें और परिणाम को कॉपी करें
  7. परिणाम को "मान" फ़ील्ड में विगत करें
  8. "ठीक" क्लिक करें
  9. "पर्यावरण" टैब में वापस, सुनिश्चित करें कि आप "मूल वातावरण में पर्यावरण जोड़ें" का चयन करें

अब ग्रहण PATH पर्यावरण चर के लिए उन्हीं मूल्यों का उपयोग करता है जैसा आपका सिस्टम करता है। याद रखें: आपके द्वारा चुने गए रन कॉन्फ़िगरेशन के लिए यह केवल सच है।

जैसा कि आपके प्रश्न में पहले ही उल्लेख किया गया है, जावा में जाँच करें:

System.getenv();

2

सबसे अधिक संभावना है, आपकी बैश लॉगिन स्क्रिप्ट ( .bashrcया .bash_profile) बदल रही है $PATH। यदि आप टर्मिनल से ग्रहण शुरू करते हैं, तो क्या यह /usr/local/binअपने रास्ते में आता है?


1
अच्छा निर्णय! अगर मैं टर्मिनल से एक्लिप्स चलाता हूं, तो इसके पास रास्ते में usr / लोकल / बिन है। अब मुझे क्या करना चाहिए? नहीं है / usr / स्थानीय / बिन कुछ है जो सभी अनुप्रयोगों के लिए रास्ते में होना चाहिए? मैं इसे किस स्क्रिप्ट में डाल सकता हूं, ताकि अगर मैं फाइंडर से या डॉक से एक्लिप्स चलाऊं, तो यह रास्ते में होगा?
जेसन एस

1
इसके अलावा, मेरे पास मेरे उपयोगकर्ता निर्देशिका में -bashrc या .bash_profile नहीं है।
जेसन एस

2

ऊपर यह टिप मेरे लिए काम करता है: 1) / रास्ते / रूट / रूट 2 के रूप में पथ जोड़ें) $ ECL_HOME / Eclipse.app / सामग्री / MacOS / ग्रहण के साथ $ ECL_HOME / Eclipse.app के बजाय ग्रहण शुरू करें


यह एक मेरे लिए काम करता है, बहुत-बहुत धन्यवाद! मेरे मामले में, एक्लिप्स को चलाने का रास्ता /Applications/Eclipse.app/Contents/MacOS/eclipse
Tsung-Ting Kuo

2

वैकल्पिक रूप से आप बस /usr/localअपने आवेदन की ओर इशारा करते हुए अपनी निर्देशिका में एक प्रतीकात्मक लिंक जोड़ सकते हैं।

जैसे कि root:

ln -s /Applications/PhantomJS/phantomjs-1.9.2-macosx/bin/phantomjs / usr / स्थानीय / प्रेत

इससे मुझे एक्वा में एक मावेन परियोजना के भीतर से बाहरी फैंटमजेएस एप्लिकेशन ( एमवीएन टेस्ट) को चलाने में मदद मिली ।


ऐसा लगता है जैसे $PATHया निर्देशिका के साथ करने के लिए कुछ भी नहीं है । क्या आप अधिक विवरण में बता सकते हैं? $PATH/usr/local/bin
पाबौक

आप रास्ते में कहीं एक प्रतीकात्मक लिंक डालते हैं, जो उस वास्तविक स्थान को इंगित करता है जो पथ में नहीं है। मैंने इसे पहले किया है, यह एकल निष्पादकों के लिए काम करता है, फाइलों से भरी निर्देशिका के लिए काम नहीं करता है
जेसन एस

1

आप /etc/launchd.confअपने कंप्यूटर को एक लाइन जोड़कर और रिबूट करके वैश्विक ओएक्सएक्स पथ को संशोधित कर सकते हैं।

setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

OSX 10.8 और 10.9 में काम करता है

/server/16355/how-to-set-global-path-on-os-x/277034#277034


1

ग्रहण नियोन, मैक ओएस एक्स 10.11.6
ग्रहण में टर्मिनल का उपयोग नहीं कर सकते हैं mvnआदेश। (मैं से एक नरम लिंक बनाने mvnमें /usr/local/bin)

अस्थायी समाधान:

राइट क्लिक /Applications/eclipse-> शो पैकेज सामग्री -> सामग्री -> मैकओएस -> eclipseशुरू करने के लिए डबल क्लिक करें ।

इस तरह से ग्रहण शुरू करें, ग्रहण सभी पथ सेटिंग्स का पता लगा सकता है और फिर मैं mvnअब ग्रहण टर्मिनल में कमांड का उपयोग कर सकता हूं ।

आप eclipseइस फ़ोल्डर में राइट क्लिक कर सकते हैं और इसे आसानी से शुरू करने के लिए उपनाम बना सकते हैं।

मुझे नहीं पता कि अभी क्यों। मुझे लगता है कि यह एक ग्रहण BUG होना चाहिए।


0

~/.bash_profileपथ को शामिल करने के लिए संपादित करें

लॉन्चपैड में शुरू करने के बजाय,

टर्मिनल खोलें और इसे शुरू करना

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

यही मेरे लिए चाल चली।


0

कुछ उत्तर एक साथ लेना और कुछ आसान करने के लिए अपडेट करना:

  1. Eclipse.app पर राइट-क्लिक करें और "पैकेज सामग्री दिखाएँ" चुनें
  2. "ग्रहण" खोजने के लिए सामग्री / MacOS पर नेविगेट करें।
  3. राइट-क्लिक करें और "मेक एलियास" चुनें, या कमांड और विकल्प को पकड़ते हुए खींचें और छोड़ें।
  4. एप्लिकेशन में वापस की तरह, कहीं और सुविधाजनक रखें।
  5. लॉन्च करने के लिए डबल-क्लिक करें।
  6. कोई चरण 6 नहीं है!

इतना ही नहीं, कच्चे एक्लिप्स आउटपुट को दिखाते हुए एक आसान टर्मिनल विंडो खोलेगी, यह आपके लॉगिन शेल में आपके द्वारा निर्धारित किए गए रास्ते को अपनाएगा।

तो अगर आप सामान्य तरीके से किसी का उपयोग कर सकते हैं अपना रास्ता निर्धारित करने के लिए (संपादन /etc/pathsया ~/.bash_profileया बस की तरह अच्छी तरह व्यवहार कमांड लाइन टूल स्थापित करने mbed), और आगे नहीं चिंता। अगर आप इसे टर्मिनल से बुला सकते हैं तो ग्रहण इसे भी कह सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.