हर बार जब मैं IntelliJ में इस अपवाद का सामना करता हूं, तो मैं इसे मामूली रूप से ठीक करता हूं और आसानी से ठीक करना भूल जाता हूं।
कोड:
package whatever;
import org.junit.Test;
public class TestClass
{
@Test
void test() {}
}
परिदृश्य:
- नया
TestClass
जोड़ें। TestClass
पर राइट-क्लिक करें।- परीक्षण मामलों को चलाने के लिए "रन 'टेस्टक्लास'" चुनें।
"संदेश निर्माण" फलक दिखाता है:
Information:javac 9-ea was used to compile java sources
Information:Module "dummy" was fully rebuilt due to project configuration/dependencies changes
Information:8/16/17 11:35 PM - Compilation completed with 1 error and 0 warnings in 1s 663ms
Error:java: java.lang.ExceptionInInitializerError
क्या गलत हो सकता है?
इस साधारण परिदृश्य में संभावित मुद्दे क्या हैं?
IntelliJ: समुदाय 2017.1 (विचार-आईसी-171.4424.56)
5 जवाब
समस्या को ठीक करने के लिए, मैं करता हूं:
- फ़ाइल -> परियोजना संरचना... -> परियोजना सेटिंग्स/परियोजना -> परियोजना एसडीके।
- "9-ईए" से "1.8" में बदलें।
विवरण
जाहिरा तौर पर, मुद्दा चयनित JDK-s के निर्माण (जावा 9) और चलाने (जावा 8) में विसंगतियों का है।
मुझे यकीन नहीं है कि उसी प्रोजेक्ट के लिए "9-ईए" को फिर से कैसे चुना जाता है - न ही IntelliJ स्वयं "9-ea" JRE में चलता है (सहायता के अनुसार -> के बारे में) न ही JAVA_HOME
env var इस पर सेट है न ही अन्य संभावित सेटिंग्स (जैसे Maven -> Runner) किसी भी "9-ea" का सुझाव देती हैं।
मैंने उसी JDK (जावा 9) के तहत परीक्षण चलाने का प्रबंधन नहीं किया, जिसके तहत इसे संकलित किया जाता है। हालाँकि, यह स्पष्ट नहीं है कि JDK परीक्षण किसके तहत चलाए जाते हैं क्योंकि IntelliJ केवल JDK के बारे में संकलन के लिए रिपोर्ट करता है।
जब मैंने IntelliJ-2019.2 संस्करण में अपना एप्लिकेशन चलाने का प्रयास किया तो मुझे उसी त्रुटि का सामना करना पड़ रहा था। इस समस्या को हल करने के लिए मैंने जिन चरणों का पालन किया है, वे नीचे दिए गए हैं।
संस्करण:
इंटेलीज : आईडिया-इंटेलिजे-2019.2
जावा: jdk1.8_221
- IntelliJ में नीचे के पथ पर जाएँ
फ़ाइल -> परियोजना संरचना -> परियोजना -> परियोजना एसडीके -> (जावा संस्करण का चयन करें जिसे आप उपयोग करना चाहते हैं)
(मेरे मामले में 'प्रोजेक्ट एसडीके' जावा -11 के तहत चुना गया था, मैंने इसे 'जावा 8' में बदल दिया)
- 'लागू करें' और फिर 'ठीक' पर क्लिक करें।
मुझे लगता है कि मैं इस मुद्दे में भाग गया क्योंकि इंटेलिजे इन-बिल्ट जावा -11 का उपयोग करके मेरी जावा कक्षाओं को संकलित करने की कोशिश कर रहा था जबकि मेरी जावा कक्षाएं जावा -8 पर बनाई गई हैं। तो जब मैंने इंटेलिजे में जावा -8 को स्पष्ट रूप से कॉन्फ़िगर किया, तो यह काम किया !! उम्मीद है ये मदद करेगा।
अगर आपने हाल ही में अपना आईडीई अपडेट किया है तो आप इन चरणों को आजमा सकते हैं।
- विचार प्रोजेक्ट/कार्यक्षेत्र के लिए .idea निर्देशिका हटाएं
- फिर फ़ाइल पर जाएँ -> अमान्य कैश/पुनरारंभ करें...
- एक बार जब आइडिया फिर से शुरू हो जाए तो अपने मॉड्यूल को दोबारा जोड़ें/आयात करें
एक बार जब मैंने अपनी मशीन में जावा 11 स्थापित किया तो मुझे यह अपवाद दिखाई देने लगा। JAVA_HOME
डिफ़ॉल्ट रूप से Java 11 की ओर इशारा कर रहा था और मेरा प्रोजेक्ट अभी भी Java 8 में था। JAVA_HOME
को Java 8 jdk में बदलने से मेरे लिए समस्या ठीक हो गई।
यदि आपके पास एक से अधिक JDK पर चलने वाले कई प्रोजेक्ट हैं, तो इस कमांड का उपयोग जावा संस्करण को प्रति कमांड अस्थायी रूप से बदलने के लिए करें।
JAVA_HOME=/path/to/JVM/jdk/Home mvn clean install
यदि आप लोम्बोक का उपयोग करते हैं: मेरे लिए यह पोम.एक्सएमएल में मेरी मेवेन लोम्बोक निर्भरता के लिए नवीनतम संस्करण सेट करने का एक समाधान था।
*<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.8</version>
</dependency>*
संबंधित सवाल
नए सवाल
intellij-idea
IntelliJ IDEA JetBrains द्वारा एक IDE है। यह मुख्य रूप से जावा विकास का समर्थन करता है, लेकिन जावास्क्रिप्ट, ग्रूवी, एचटीएमएल, सीएसएस, आरएसएस, आर, हास्केल, पीएचपी, रूबी, पायथन, स्काला, स्विफ्ट, क्लोजर, कोटलिन, हाइब्रिस, ग्रैडल और अन्य का भी समर्थन करता है। विशेष रूप से समुदाय और अंतिम संस्करणों में उपयोग और समस्याओं से संबंधित प्रश्न इस टैग का उपयोग करना चाहिए। हालाँकि, अगर आपको किसी और चीज़ की समस्या है और सिर्फ IntelliJ का उपयोग कर रहे हैं, तो कृपया इस टैग का उपयोग न करें।