IntelliJ IDEA प्रारंभ नहीं होता है: एक JDK वर्ग लोड नहीं कर सकता: com.sun.jdi.Field


13

जब मैं इंटेलीज शुरू करने की कोशिश करता हूं तो मुझे एक पॉपअप कहा जाता है

Cannot load a JDK class: com.sun.jdi.Field 
Please ensure you run the IDE on JDK rather than JRE.

यह वास्तव में अजीब है क्योंकि मैंने जावा 11 JDK के लिए JAVA_HOMEऔर PATHचर को इंगित किया है ।


दूर से डीबग करने के लिए तरह तरह की pf ट्रिकी चीज़ लेकिन 1) हमें अपना JAVA_HOME वेरिएबल दिखाओ। 2) जाँच करें कि क्या यह IntelliJ config file jetbrains.com/help/idea/switching-boot-jdk.html 3 में ओवरराइड नहीं है ) अंतिम उपाय के रूप में, इसे config फाइल के माध्यम से बदलने का प्रयास करें
Lesiak

@Lesiak ने .jdk फ़ाइल में JDK को बदलने में मदद की! धन्यवाद!
सेरेस

एक JDK के साथ IntelliJ डाउनलोड करें । यह बॉक्स से बाहर काम करना चाहिए
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen यदि intellij-support.jetbrains.com/hc/articles/206544879 पर बदला नहीं गया और कस्टम रनटाइम स्थान अमान्य हो गया, तो अधिक विवरण के लिए मेरा उत्तर देखें।
CrazyCoder

@CrazyCoder सच। कुदोस टीम के लिए "खुद की जेवीएम लाता है" वितरण - यह चीजों को बहुत आसान बनाता है!
थोरबजोरन रावन एंडरसन

जवाबों:


28

यह समस्या तब होती है यदि आप किसी अन्य संस्करण के साथ डिफ़ॉल्ट JetBrains रनटाइम को ओवरराइड करते हैं, IDE CONFIG\idea64.exe.jdk फ़ाइल के तहत इस रनटाइम के स्थान को बचाता है और फिर यह रनटाइम अमान्य (हटाए गए या दूषित) या नए आईडी संस्करण संस्करण के साथ असंगत हो जाता है।

इसका समाधान idea64.exe.jdk/ idea.exe.jdkफ़ाइल को हटाना है ताकि IDE डिफ़ॉल्ट बंडल किए गए JetBrains रनटाइम का उपयोग कर रहा है (फ़ाइल का नाम आपके द्वारा उपयोग किए जा रहे उत्पाद के आधार पर भिन्न हो सकता है, इसलिए सामान्य गाइड *.jdkIDE कॉन्फ़िग डायरेक्टरी में फ़ाइलों को हटाने के लिए है )।

यहां वह फ़ाइल है जिसे विंडोज के अधिकांश उपयोगकर्ताओं के लिए हटा दिया जाना चाहिए:

c:\Users\<user>\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.jdk

यह समस्या तब होती है जब यह फ़ाइल Java 8 की ओर इशारा करती है क्योंकि IntelliJ IDEA अब Java 8 पर नहीं चलती है और इसके बजाय Java 11 की उम्मीद कर रही है। Java 11 पहले से ही बंडल है, लेकिन यह फ़ाइल इसे ओवरराइड करती है, इसलिए समस्या है।

कृपया IDE रनटाइम को ओवरराइड करने के अन्य संभावित तरीकों के लिए भी इस दस्तावेज़ को देखें और सुनिश्चित करें कि इनमें से कोई भी प्रभाव में नहीं है:

IDEA_JDK_64 पर्यावरण चर भी डिफ़ॉल्ट रनटाइम को ओवरराइड कर सकता है, आपको इसे अनसेट करने की आवश्यकता है।

एक अन्य संभावित मुद्दा यह है कि jbrउपनिर्देशिका में बंडल रनटाइम दूषित हो जाता है। इसे java -versionअंदर चलाकर सत्यापित करें IDE_HOME\jbr\bin। आईडीई को पुनर्स्थापित करने में मदद करनी चाहिए।

IntelliJ IDEA फोरम में संबंधित चर्चा भी देखें ।

इस मुद्दे की जांच YouTrack में की जा रही है


क्या यह संभव होगा कि Intellij बंडल किए गए JVM फ़ाइलों की अखंडता की पुष्टि करता है? या यह कुछ ऐसा नहीं है जो होता है?
थोरबजोरन रावन एंडरसन

यह एक नया मुद्दा है और हम अभी भी जांच कर रहे हैं कि ऐसा क्यों होता है। हां, आदर्श रूप से आईडीई को जेवीएम की अखंडता को सत्यापित करना चाहिए, लेकिन यह प्लेटफॉर्म विशिष्ट लॉन्चरों के माध्यम से समस्याग्रस्त हो सकता है।
क्रेजीक्रोडर

क्या आप सुनिश्चित हैं कि फ़ाइल "idea.exe.jdk" (या "idea64.exe.jdk") नहीं है ...?
जारोस्लाव ज़ारूबा

1
@ JaroslavZáruba ने उत्तर को अपडेट किया।
CrazyCoder

1

सुनिश्चित करें कि आपका IntelliJ संस्करण जावा 11 पर चलने का समर्थन करता है (केवल इसके साथ संकलन नहीं है)। इसके अतिरिक्त, यदि आप विंडोज का उपयोग कर रहे हैं और सिर्फ JAVA_HOME चर को परिभाषित करते हैं, तो रिबूट करें।


मैं नवीनतम IntelliJ IDEA अंतिम संस्करण का उपयोग कर रहा हूं जिसे Java 11 का समर्थन करना चाहिए। एक रिबूट ने दुर्भाग्य से समस्या को ठीक नहीं किया।
सायरस

1

2020.1 से कॉन्फ़िगरेशन फ़ोल्डर में स्थित है %APPDATA%/Roaming/JetBrains/<product><version>

मुझे उस फ़ोल्डर में अपनी * .jdk फाइल को डिलीट करना था ताकि वह खुद को फिर से कॉन्फ़िगर कर सके।


साझा करने के लिए धन्यवाद, लेकिन स्वीकार किए गए उत्तर में कौन सी नई जानकारी है?
क्रेज़ीकोड

0
  • जाँच करें कि क्या यह IntelliJ कॉन्फ़िग फ़ाइल में ओवरराइड नहीं है: https://www.jetbrains.com/help/idea/switching-boot-jdk.html
  • अंतिम उपाय के रूप में, इसे कॉन्फ़िगर फ़ाइल के माध्यम से बदलने का प्रयास करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.