Intellij JAVA_HOME चर




intellij-idea (4)

मैंने ग्रैडल और इंटेलीज का उपयोग शुरू किया लेकिन मुझे ग्रैडल के जेवीएम को कॉन्फ़िगर करने में समस्या आ रही है। जब मैं एक नया ग्रेडल प्रोजेक्ट शुरू करता हूं तो मुझे JVM को मेरे JAVA_HOME चर के रूप में परिभाषित करने की अनुमति नहीं है। निम्नलिखित स्क्रीनशॉट दिखाते हैं कि क्या हो रहा है:

जैसा कि आप देख सकते हैं कि Intellij कहता है कि मेरा JAVA_HOME चर परिभाषित नहीं है, हालाँकि अगर मैं echo $JAVA_HOME टाइप करता हूँ तो मैं अपने जावा निर्देशिका प्राप्त कर सकता हूँ, मेरे मामले में:

मेरा ./Bash_profile निम्नानुसार कॉन्फ़िगर किया गया है: export JAVA_HOME=$(/usr/libexec/java_home)

कोई समझ सकता है कि क्या हो रहा है? धन्यवाद!


अब तक, किसी ने भी वास्तविक प्रश्न का उत्तर नहीं दिया है।

कोई समझ सकता है कि क्या हो रहा है?

यहाँ समस्या यह है कि जबकि आपके $JAVA_HOME का मूल्य सही है , आपने इसे गलत स्थान पर परिभाषित किया है

  • जब आप एक टर्मिनल खोलते हैं और एक बैश सत्र शुरू करते हैं, तो यह ~/.bash_profile फ़ाइल पढ़ेगा। इस प्रकार, जब आप echo $JAVA_HOME दर्ज करते हैं, तो यह उस मान को लौटा देगा जो वहाँ सेट किया गया है।
  • जब आप सीधे IntelliJ लॉन्च करते हैं, तो यह नहीं पढ़ेगा ~/.bash_profile ... यह क्यों होना चाहिए? तो IntelliJ के लिए, यह चर सेट नहीं है।

इसके दो संभावित समाधान हैं:

  • एक सत्र से IntelliJ लॉन्च करें: एक टर्मिनल खोलें और "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"idea प्रक्रिया export एड वाले बैश के किसी भी पर्यावरण चर का उत्तराधिकार देगी। (चूंकि आपने export JAVA_HOME=… किया था, यह काम करता है!), या, परिष्कृत तरीका:
  • वैश्विक पर्यावरण चर सेट करें जो सभी कार्यक्रमों पर लागू होते हैं, न केवल बैश सत्र। यह आपके विचार से अधिक जटिल है, और उदाहरण के लिए, here और here समझाया गया here । आपको जो करना चाहिए वह चलाया जाता है

    /bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)

    हालाँकि, यह रिबूट के बाद रीसेट हो जाता है। यह सुनिश्चित करने के लिए कि यह प्रत्येक बूट पर चलता है, निष्पादित करें

    cat << EOF > ~/Library/LaunchAgents/setenv.JAVA_HOME.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
        <key>Label</key>
        <string>setenv.JAVA_HOME</string>
        <key>ProgramArguments</key>
        <array>
          <string>/bin/launchctl</string>
          <string>setenv</string>
          <string>JAVA_HOME</string>
          <string>$(/usr/libexec/java_home)</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>ServiceIPC</key>
        <false/>
      </dict>
    </plist>
    EOF

    ध्यान दें कि यह टर्मिनल प्रक्रिया को भी प्रभावित करता है, इसलिए आपके ~/.bash_profile में कुछ भी डालने की आवश्यकता नहीं है।


बिट प्रति-सहज ज्ञान युक्त, लेकिन आपको पहले Java प्रोजेक्ट के लिए SDK सेटअप करना होगा। IntelliJ स्वागत स्क्रीन के निचले दाईं ओर, 'कॉन्फिगर> प्रोजेक्ट डिफॉल्ट्स> प्रोजेक्ट स्ट्रक्चर' चुनें।

बाईं ओर प्रोजेक्ट टैब दिखाएगा कि आपके पास कोई एसडीके चयनित नहीं है:

इसलिए, आपको ड्रॉपडाउन के दाहिने हाथ पर 'नया ...' बटन क्लिक करना होगा और इसे अपने JDK पर इंगित करना होगा। उसके बाद, आप आयात स्क्रीन पर वापस जा सकते हैं और इसे आपके JAVA_HOME चर के साथ आबाद किया जाना चाहिए, बशर्ते आपके पास यह सेट हो।


यदि आप अपना JAVA_HOME इंटेलीज द्वारा मान्यता प्राप्त करना चाहते हैं, तो आप इनमें से एक कर सकते हैं:

  • टर्मिनल / एप्लिकेशन / IntelliJ IDEA 14.app/Contents/MacOS से अपना इंटेलीजेंस शुरू करें (यह आपके bash env वैरिएबल को ले जाएगा)
  • निष्पादित करके लॉगिन env चर जोड़ें: launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"

अपने प्रश्न का सीधा उत्तर देने के लिए, आप अपने ~ / .bash_profile में लॉन्चर लाइन जोड़ सकते हैं

जैसा कि दूसरों ने उत्तर दिया है कि आप परियोजना संरचना में एसडीके स्थापित करके JAVA_HOME को अनदेखा कर सकते हैं।


समस्या यह है कि आपका "प्रोजेक्ट एसडीके" कोई नहीं है! "नया ..." पर क्लिक करके "प्रोजेक्ट एसडीके" जोड़ें और जेडीके का रास्ता चुनें। और फिर यह ठीक होना चाहिए।







intellij-idea