आईडिया: जावा: स्रोत रिलीज़ 1.7 को लक्ष्य रिलीज़ 1.7 की आवश्यकता है


474

IntelliJ IDEA का उपयोग करते हुए, एक JUnit परीक्षण चलाते समय, मुझे मिलता है

यहाँ छवि विवरण दर्ज करें

यह कैसे सही हो सकता है?

  • एसडीके 1.7 का उपयोग करना
  • मॉड्यूल भाषा स्तर 1.7 है

मावेन बिल्ड ठीक काम करता है। (यही कारण है कि मैं IDEA कॉन्फ़िगरेशन समस्या में यह विश्वास करता हूं)

जवाबों:


689

सबसे अधिक संभावना है कि आपके पास मावेन से आयातित गलत संकलक विकल्प हैं:

संकलक विकल्प

इसके अलावा जाँच परियोजना और मॉड्यूल bytecode (स्क्रीनशॉट पर उल्लिखित लक्ष्य ) संस्करण सेटिंग्स भी देखें।

अन्य स्थान जहां स्रोत भाषा स्तर कॉन्फ़िगर किया गया है:

  • परियोजना संरचना | परियोजना

परियोजना

  • परियोजना संरचना | मॉड्यूल (हर मॉड्यूल की जांच करें) | सूत्रों का कहना है

सूत्रों का कहना है

Maven डिफ़ॉल्ट भाषा के स्तर है 1.5 (5.0), आप ऊपर स्क्रीनशॉट पर मॉड्यूल भाषा के स्तर के रूप में इस संस्करण देखेंगे।

इसे मावेन-कंपाइलर-प्लगइन कॉन्फ़िगरेशन का उपयोग करके बदला जा सकता है pom.xml:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

या

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

IntelliJ IDEA Maven प्रोजेक्ट्स टूल विंडो में Maven प्रोजेक्ट को Reimport करने के बाद इस सेटिंग का सम्मान करेगा :

पुन: आयात करें


2
सही बात। क्या यह किसी परियोजना के सभी मॉड्यूल के लिए सामान्य है, या यह किसी दिए गए मॉड्यूल के लिए विशिष्ट है?
जेम्स रत्सेव

1
यह सेटिंग प्रति प्रोजेक्ट है, सभी मॉड्यूल को प्रभावित करती है।
क्रेजीकोडेर

8
क्या कोई कारण है कि इसे ठीक करने और लागू करने के बाद यह कुछ गलत मान पर वापस लौट जाएगा (या तो परिवर्तन या कुछ के माध्यम से)?
पैट्रिक

5
@Patrick, आपके pom.xmlजावा कम्पाइलर प्लग-इन कॉन्फ़िगरेशन में जावा संस्करण निर्दिष्ट हो सकता है जो अगली बार जब आप pom.xml में परिवर्तन करते हैं तो यह सेटिंग ओवरराइड हो जाएगी (यदि स्वचालित रीइम्पोर्ट सक्षम है) या मैन्युअल रूप से प्रोजेक्ट को फिर से आयात करें।
क्रेज़ीकोड

1
@CrazyCoder मैंने एक बार पहले इसे बदलने के बाद अपना pom.xml बदल दिया था (पोम पर आने वाले अन्य परिवर्तनों पर इंतजार कर रहा था), ताकि यह एक बहुत ही उचित स्पष्टीकरण की तरह लगे। धन्यवाद
पैट्रिक

358

इंटेलीज 15, 2016 और 2017

इंटेलीज 13 और 14 के लिए नीचे चर्चा की गई है, लेकिन सेटिंग्स / प्राथमिकताएं पैनल में एक अतिरिक्त स्तर के साथ: सेटिंग्स > बिल्ड, निष्पादन, तैनाती > कंपाइलर > जावा कंपाइलर

यहाँ छवि विवरण दर्ज करें

इंटेलीज 13 और 14

IntelliJ 13 और 14 में, सेटिंग> कंपाइलर> जावा कंपाइलर UI की जांच करें ताकि यह सुनिश्चित किया जा सके कि आप अपने मॉड्यूल में भिन्न बायोटेक संस्करण को लक्षित नहीं कर रहे हैं।

यहाँ छवि विवरण दर्ज करें


3
मुझे अपने मॉड्यूल्स को डिलीट करना था और इसे ऑटो
रिज़ॉल्यूशन

3
नवीनतम Idea14.1 के लिए काम करता है
तुषार

तो यहाँ क्या तय है?
एलिकएल्ज़िन-किलाका

@ AlikElzin-kilaka, जो भी आपको चाहिए उसके लिए लक्ष्य स्तर निर्धारित करें।
ड्रू नोक

क्या कोई समझा सकता है कि वे वैश्विक वरीयताओं को कॉन्फ़िगर स्क्रीन में विशिष्ट मॉड्यूल सेटिंग्स क्यों डालेंगे, मॉड्यूल सेटिंग्स में नहीं ??
एम.के.

61

में IntelliJ विचार 14.1 "लक्ष्य बाईटकोड संस्करण" एक अलग जगह में है।

निम्नलिखित परिवर्तन ने मेरे लिए काम किया:

फ़ाइल> सेटिंग्स ...> निर्माण, निष्पादन, तैनाती> कंपाइलर> जावा कंपाइलर : लक्ष्य बाइटकोड संस्करण को 1.5 से 1.8 तक बदल दें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


या इसे खाली छोड़ देना बेहतर है, जब इसे jdk से निर्धारित किया जा सकता है!
ड्रैगनबोर्न

मावेन की तुलना में एक अलग विन्यास क्यों है?
एलिकएल्ज़िन-किलाका

42

क्या आपने अपने बिल्ड कॉन्फ़िगरेशन पर ध्यान दिया है जैसे कि यदि आप मावेन 3 और जेडीके 7 का उपयोग करते हैं

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

22

मैं इसमें भाग गया और तय था कि प्रोजेक्ट सेटिंग्स> मॉड्यूल> विशेष मॉड्यूल> निर्भरता टैब पर क्लिक करें। मैंने देखा कि मॉड्यूल एसडीके अभी भी 1.6 पर सेट था, मैंने इसे 1.7 में बदल दिया और यह काम कर गया।


मैंने यह कोशिश की ... मैंने अलग-अलग मॉड्यूल को हटाने और उन्हें ऑटो रिज़ॉल्यूशन पर छोड़ दिया।
अकिन ओकेबेगिल

14

मुझे सेटिंग्स में आवश्यक विकल्प ('लक्ष्य बाइटकोड संस्करण') मिल गया है > संकलक> जावा संकलक मेरे मामले में (इंटेलीज विचार 12.1.3)


10

निम्नलिखित पथ में प्रोजेक्ट की संकलक सेटिंग फ़ाइल को संशोधित करें और 'लक्ष्य' को बदलकर 1.7 करें:

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>

धन्यवाद यह मेरे लिए काम किया! प्रोजेक्ट पर राइट क्लिक करके "Make Module '[your app name]" "करना न भूलें
शहजाद

5

मैंने इसे खाली क्षेत्र निर्धारित करके हल किया:

सेटिंग्स> कंपाइलर> जावा कंपाइलर> प्रोजेक्ट बायटेकोड संस्करण

IntelliJ JDK डिफ़ॉल्ट संस्करण का उपयोग करता है।


4

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

इंटेलीज 12 129.961


इंटेलीज 14.1.2 के लिए यहां भी। परियोजना को फिर से तैयार किया और इसे तय किया गया।
श्रीकांत

4

मैंने इसे IntelliJ IDEA 14 से v14.1 तक मामूली अपग्रेड के बाद हिट किया है। मेरे लिए टॉप / पैरेंट पोम के एक एडिट को बदलने में मदद मिली और फिर मावेन (यदि यह स्वचालित नहीं है) को फिर से आयात किया गया।

लेकिन यह शायद मॉड्यूल (राइट्स) / एग्रीगेटेड / पैरेंट मॉड्यूल और मावेन -> रिइम्पोर्ट पर राइट क्लिक करने के लिए पर्याप्त है।


यह मेरे लिए काम किया! मैंने इसे अपने शीर्ष-स्तरीय मॉड्यूल और मेरे बच्चे के मॉड्यूल के लिए किया था
समाप्त कर दिया

2

मैंने bellow विधि को हल किया

फ़ाइल >> प्रोजेक्ट संरचना >> प्रोजेक्ट >> प्रोजेक्ट लैंग्वेज लेवल -> उचित संस्करण सेट करें (उदा: 1.5)


1

check .idea / misc.xml कभी-कभी आपको भाषा बदलने की आवश्यकता होती है


1

यदि यह एक ग्रेडल प्रोजेक्ट है, तो आपकी build.gradle फ़ाइल में, निम्न सेटिंग्स खोजें:

sourceCompatibility = "xx"
targetCompatibility = "xx"

सभी उप-विषय के लिए, अपनी रूट बिल्ड.ग्रेडल फ़ाइल में, आप डाल सकते हैं:

subprojects { project ->
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

हालाँकि, आप मैन्युअल रूप से Idea> सेटिंग में भाषा का स्तर सेट कर सकते हैं, यदि यह एक ग्रैडल प्रोजेक्ट है, तो Idea स्वचालित रूप से मॉड्यूल .iml फ़ाइलों को ग्रेडल सेटिंग्स (Idea 15+ के साथ परीक्षण) से सिंक्रनाइज़ करता है। इसलिए जब ग्रेड रिफ्रेश हो जाता है तो आपके सभी मैनुअल बदलाव खत्म हो जाते हैं।

ग्रैडल डॉक्यूमेंटेशन के आधार पर , यदि ये सेट नहीं होते हैं, तो वर्तमान जेवीएम कॉन्फ़िगरेशन का उपयोग किया जाता है।


1

मुझे इस त्रुटि में चलाने का एक और तरीका मिला। आप इसे प्राप्त कर सकते हैं यदि आप अपनी निर्देशिका संरचना को फिर से व्यवस्थित कर रहे हैं, और आपका एक पॉम पुराने माता-पिता को इंगित कर रहा है जो अब javac को कॉन्फ़िगर नहीं करता है (क्योंकि यह कॉन्फ़िगरेशन मध्य स्तर पर ले जाया गया था)। यदि ऐसा होता है तो शीर्ष स्तर 1.5 पर चूक जाता है और दुर्व्यवहार निचले स्तर के पोम को विरासत में मिलता है।

इसलिए जब आप इस त्रुटि को देखते हैं तो यह जांचने के लिए एक और बात यह है कि आपकी पोम संरचना आपकी निर्देशिका संरचना से ठीक से मेल खा रही है।


1

यदि मावेन निर्माण ठीक काम करता है, तो मावेन और इंटेलीज आईडीईए परियोजनाओं की संरचना को सिंक्रनाइज़ करने का प्रयास करें।

में Maven उपकरण खिड़की , ताज़ा करें बटन क्लिकताज़ा करना । इस बटन को दबाने पर, IntelliJ IDEA, Maven टूल विंडो में प्रोजेक्ट संरचना को पार्स करता है।

ध्यान दें कि यह मदद नहीं कर सकता है यदि आप ईएपी बिल्ड का उपयोग कर रहे हैं, क्योंकि मावेन सिंक्रोनाइज़ेशन सुविधा कभी-कभी टूट सकती है।


0

सुनिश्चित करें कि सही चित्रण चुना गया है। फ़ाइल> प्रोजेक्ट संरचना

अपनी परियोजना का चयन करें और निर्भरता टैब पर नेविगेट करें। ड्रॉपडाउन से सही निर्भरता का चयन करें या नया बनाएँ।


0

यदि पिछले सभी समाधानों ने आपके लिए काम नहीं किया है (जो मेरा मामला था), आप इंटेलीज कॉन्फिग फाइल को हटा सकते हैं:

  • project_directory / .idea / compiler.xml
  • project_directory / .idea / encodings.xml
  • project_directory / .idea / misc.xml
  • project_directory / .idea / modules.xml
  • project_directory / .idea / vcs.xml
  • project_directory / .idea / workspace.xml
  • आदि।

Intellij नए लोगों को बाद में पुनर्जीवित करेगा। हालाँकि, BE CAREFUL, यह projet पर बने सभी intellij कॉन्फ़िगरेशन को भी हटा देगा (यानी: debug mode का कॉन्फ़िगरेशन, ...)


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