त्रुटि: जावा: javacTask: स्रोत रिलीज़ 8 को लक्ष्य रिलीज़ 1.8 की आवश्यकता है


889

इंटेलीज आईडीई का उपयोग करके किसी भी परियोजना को संकलित नहीं किया जा सकता है। नीचे सेटिंग्स का स्क्रीनशॉट:

JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

परियोजना एसडीके और भाषा स्तर:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

भाषा स्तर:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

किसी के पास कोई विचार है?


1
यह "शुद्ध इंटेलीज" से एक त्रुटि की तरह नहीं दिखता है; क्या आप एक चींटी का निर्माण या कुछ का उपयोग नहीं कर रहे हैं?
fge


जवाबों:


1911
  1. फ़ाइल> सेटिंग्स> निर्माण, निष्पादन, तैनाती> कंपाइलर> जावा कंपाइलर
  2. आप जिस मॉड्यूल के लिए काम कर रहे हैं, उसका टारगेट बाईटकोड संस्करण 1.8 तक बदलें ।

यदि आप मावेन का उपयोग कर रहे हैं

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>

(टिप्पणियों से लहराया।)

नोट: यदि आपको अपनी परियोजना को फिर से शुरू करने में कोई आपत्ति नहीं है, तो केवल एक चीज जो आपको वास्तव में करने की आवश्यकता है वह है पोम को बदलना और परियोजना को फिर से आयात करना, फिर इंटेलीजे सही सेटिंग्स को उठाएगा और आपको मैन्युअल रूप से उन्हें बदलने की आवश्यकता नहीं है।


इंटेलीज 14 परम में काम करता है।
DtechNet

पुराने आईडिया संस्करणों पर, कोशिश करें: सेटिंग्स -> कंपाइलर -> जावा कंपाइलर -> प्रति-मॉड्यूल बायटेकोड संस्करण
जोनीक

88
यदि आप एक मैक पर हैं, तो यह इंटेलीज आईडीईए के तहत है> वरीयताएँ ...> निर्माण, निष्पादन, तैनाती> जावा कंपाइलर
जेपी आर्मस्ट्रांग

4
Intellij 2016.2 से नए के लिए, जाँच करने के लिए एक और जगह है Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK:।
ब्रूस सन

1
जब आपके पास POM पदानुक्रम दो से अधिक स्तरों के साथ होता है और आपके कंपाइलर प्लग इन को पेरेंट POM में परिभाषित किया गया है, तो IntelliJ इसे सबसे गहरे स्तर पर नहीं पहचान सकता है। मैं कहता हूं कि नहीं हो सकता है, क्योंकि कुछ अन्य मॉड्यूल के लिए, जब वे एक ही मूल पोम का विस्तार करते हैं।
डॉमहाउस

202

आपको सेटिंग में जाने और जावा कंपाइलर के नीचे सेट करने की आवश्यकता है: यहां छवि विवरण दर्ज करें

प्रोजेक्ट सेटिंग्स की भी जाँच करें


116

यह उस तरह की त्रुटि की तरह दिखता है जो मावेन उत्पन्न करता है जब आपके पास संकलक प्लगइन सही ढंग से कॉन्फ़िगर नहीं होता है। यहां जावा 8 कंपाइलर कॉन्फिग का उदाहरण दिया गया है।

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>

10
अपने आप को जैसे अन्य Maven नवागंतुकों के लिए, इस के तहत होना चाहिए project, buildहै, और फिर plugins
डैरेन हेल

4
इसके अलावा <source>1.8</source>और <target>1.8</target>कॉन्फ़िगर किया गया है, तो उपरोक्त त्रुटि हो सकती है।
BuZZ-dEE

1
यह मेरे लिए काम किया, धन्यवाद! संस्करण टैग का समाधान नहीं हुआ (मैंने इसे अपने मावेन के संस्करण से मिलान करने के लिए बदल दिया) इसलिए मैंने इसे टिप्पणी की। मेरा मानना ​​है कि मावेन को इस थ्रेड के आधार पर स्वचालित रूप से सही नवीनतम संस्करण प्राप्त करना चाहिए: stackoverflow.com/questions/17239394/…
बोरिस

84

सबसे तेज़ तरीका मुझे मिला:

  • प्रेस: CTRL+ SHIFT+ A(के लिए मैक + SHIFT+ A)
  • प्रकार: java compiler
  • दबाएँ: ENTER

सेटिंग्स विंडो में, लक्ष्य बायटेकोड को 1.8 पर सेट करें

(या java9 के लिए 9 )


3
यह बिल्कुल मेरे लिए काम करता है (धन्यवाद!), लेकिन मुझे समझ में नहीं आता कि यह pom.xml, मॉड्यूल सेटिंग्स, आदि में से अलग क्यों है ...
एडम लेहेंबॉयर

1
वरीयता पाने के लिए get दबाएँ।
एक्स। वांग

31

इस समस्या को हल करने के दो तरीके हैं:

  1. सेटिंग सेट करें (File -> Settings -> Build, Execution, Deployment -> Java Compiler): यहां छवि विवरण दर्ज करें
  2. अपने लिए एक निर्माण अनुभाग जोड़ें pom.xml: यहां छवि विवरण दर्ज करें

18

मावेन के बारे में कई उत्तर सही हैं, लेकिन आपको सीधे प्लगइन को कॉन्फ़िगर करने की आवश्यकता नहीं है।

जैसे अपाचे मावेन कंपाइलर प्लगिन के विकी पेज पर वर्णित है, आप प्लगइन द्वारा उपयोग किए गए 2 गुणों को सेट कर सकते हैं।

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

1
@ मार्विन रिक्टर मैंने आपके समाधान की कोशिश की, लेकिन यह इंटेलीज के साथ काम नहीं करता है - मेरा अनुमान है कि यह शुद्ध मावेन बिल्ड (कमांड-लाइन) में सही है, लेकिन इंटेलीजे सिर्फ इन गुणों को अनदेखा करता है। मुझे अन्य समाधानों में उल्लिखित प्लगइन को कॉन्फ़िगर करना था।
Benoit

1
नहीं, मैंने नहीं किया, क्योंकि अन्य समाधान काम करते थे। और अब मैं अपनी परियोजना को स्थानांतरित करने के लिए चला गया।
बेनोइट

4
आपके द्वारा pom.xml -> Maven -> Reimport पर राइट क्लिक करने के बाद एक आकर्षण की तरह काम करता है। यह मावेन उपयोगकर्ताओं के लिए स्वीकृत उत्तर होना चाहिए।
ptkvsk

आपको वास्तव org.apache.maven.plugins:maven-compiler-pluginमें अपनी pom या gradle फ़ाइल में प्लगइन की आवश्यकता है , जो कहने के लिए दस्तावेज़ीकरण में बताया गया है कि pom संपत्तियों में सेट की गई संपत्ति पर्याप्त होगी, मूल रूप से क्योंकि वे प्लगइन के डिफ़ॉल्ट मान सेट करते हैं, उदाहरण के लिए <source> $ { maven.compiler.source} </ source>
EliuX

यह स्वीकृत उत्तर होना चाहिए। मैक ओएस 10.13.5 पर IntelliJ 2018.2 पर मेरे लिए काम किया
2067 पर user674669

13

मैंने इसे प्रोजेक्ट स्ट्रक्चर -> मॉड्यूल पर जाकर तय किया , मॉड्यूल को प्रश्न में खोजें, निर्भरता टैब पर क्लिक करें , बदल Module SDKदें Project SDK


9

मैंने इसे केवल लक्ष्य संकलन संस्करण को 1.8 में बदलकर ठीक किया। वह अंदर है:

फ़ाइल >> सेटिंग्स >> बिल्ड, एक्ज़ीक्यूशन, डिप्लॉयमेंट >> कंपाइलर >> जावा कंपाइलर


1
धन्यवाद, विशाल। हमें Intellij Idea के साथ प्रोजेक्ट bytecode संस्करण या कम से कम प्रति-मॉड्यूल bytecode संस्करण निर्दिष्ट करना होगा। बस इसे maven-compiler-plugin के लिए pom.xml में सेट करने से मेरे लिए समस्या हल नहीं हुई।
वेबकॉम


5

मेरे मामले में मैं खोलने के द्वारा यह समस्या ठीक .iml फ़ाइल परियोजना (यह परियोजना रूट फ़ोल्डर में स्थित है और नाम इस परियोजना के नाम के समान है है) की और लाइन को बदलने <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />के लिए<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

मेरे पास सब कुछ कॉन्फ़िगर किया गया था जैसा कि अन्य उत्तरों में यहां है लेकिन किसी कारण से आइडिया अपडेटेड .iml फ़ाइल गलत है।


2
ऐसा लगता है कि कभी-कभी जब आप सभी मेनू कॉन्फ़िगर करते हैं, तब भी Intellij कॉन्फ़िगर फ़ाइलों को अपडेट नहीं करता है। अमान्य कैश और पुनः आरंभ करें (कॉन्फिग फाइलों को संपादित करने के बाद), मेरे लिए चाल चली। अजीब।
जेएएच

1
बहुत बहुत धन्यवाद। अंत में ऊपर निर्दिष्ट हर दूसरे समाधान की कोशिश और असफलता के बाद, यह काम किया।
नितिन बंसल

4

मैंने अपनी POM फ़ाइल को संशोधित करके इसे ठीक किया। उच्चतम मत वाले उत्तर के तहत अंतिम टिप्पणी पर ध्यान दें।

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

स्रोत को लक्ष्य से मेल खाना चाहिए।



3

यदि आप एंड्रॉइड-स्टूडियो 1.3 के साथ काम कर रहे हैं, तो नीचे दिए गए चरणों का पालन करें -

फाइल पर जाएं - प्रोजेक्ट स्ट्रक्चर

मॉड्यूल के अंतर्गत - ऐप - गुण टैब, स्रोत संगतता - 1.8 और चुनें

लक्ष्य संगतता - 1.8

और आप जाने के लिए अच्छे हैं।


3

अपने ग्रैडल ऐप स्तर फ़ाइल में >> संकलन में यह दो लाइनें जोड़ें

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

धन्यवाद दोस्त। आपके उत्तर ने काम किया
समाधान आत्मा

1

Compiler.xml फ़ाइल के अंतर्गत आप पाएंगे:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

और आप अपने पुराने से नए के लिए लक्ष्य मान को बदल सकते हैं, मुझे इसे 1.5 से 1.8 तक बदलने की आवश्यकता है


1

मैंने बस उसी समस्या से जूझते हुए कुछ समय बिताया है। केवल एक चीज जो मेरे लिए काम करती थी, वह निर्मित मावन (3.3.9) का उपयोग नहीं कर रही थी, लेकिन इसे बाहरी डाउनलोड किए गए संस्करण (3.5.0) की ओर इशारा कर रही थी। अंत में परियोजना खुली और सब कुछ अच्छा रहा।


1

यह समस्या होती है यदि आपका मॉड्यूल एनोटेशन प्रोसेसर के साथ कॉन्फ़िगर किया गया है और अन्य मॉड्यूल नहीं है। सभी मॉड्यूल के लिए समान कॉन्फ़िगरेशन सेट करें क्योंकि यह चक्रीय निर्भरता है।


0

मेरे लिए, समस्या मावेन के बारे में थी, जो उचित विन्यास नहीं खोज पा रहे थे, क्योंकि ये वस्तुएं मूल पोम में निर्दिष्ट थीं।

फ़ाइल बदलना -> सेटिंग्स -> बिल्ड, एक्ससेन्शन, परिनियोजन -> मेवेन -> उचित सेटिंग्स के साथ मेरी कस्टम सेटिंग्स को इंगित करने के लिए उपयोगकर्ता सेटिंग्स फ़ाइल ने समस्या को ठीक किया जो अन्यथा छिप रही थी।

सहायता के माध्यम से समस्या के बारे में पता चला -> खोजकर्ता में लॉग दिखाएं -> लॉग फ़ाइल पर क्लिक करके, जब पहले केवल शीर्षक में त्रुटि मिली और कंसोल में "java.lang.NullPointerException"।


0

समस्या का समाधान बहुत सरल है । आपको .idea / compiler.xml खोलना होगा अपने İdea प्रोजेक्ट पर फ़ाइल खोलनी होगी और

आपको उपयुक्त लक्ष्य संस्करण लिखना चाहिए


0

Intellij के साथ , Maven का उपयोग करके , आपको यह देखना होगा कि Intellij ने आपके प्रोजेक्ट को स्वतः आयात किया है। आप अपने संपादक के दाईं ओर मावेन टैब पर क्लिक करके देख सकते हैं।

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

यदि आपका प्रोजेक्ट यहां नहीं है, तो pom.xmlफ़ाइल पर क्लिक करके जोड़ें +

जाहिर है, परियोजना भी प्रासंगिक होना चाहिए <build/>:

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

0

यदि अन्य उत्तरों में से कोई भी काम नहीं करता है, तो अपने मॉड्यूल एसडीके की जांच करें

मेरे द्वारा प्रोजेक्ट SDK को 1.8, Javac कंपाइलर को 1.8 आदि अपडेट करने के बाद मेरे लिए यह त्रुटि आ गई थी। सेटिंग जो मेरे लिए समस्या थी, वह था "मॉड्यूल SDK"।

(लिनक्स पर) File > Project Structure...खुलने वाली विंडो में फिर से जाएं , के Modulesनीचे चुनें Project Settings। सूची और फिर Dependenciesटैब से प्रश्न में मॉड्यूल का चयन करें और सुनिश्चित करें कि Module SDKउचित रूप से सेट किया गया है।


0

मैंने उपरोक्त सभी की जाँच की है लेकिन त्रुटि अभी भी है।

लेकिन मेरे मामले में सभी मावेन प्रोजेक्ट्स (मावेन प्रोजेक्ट्स पैनल के अंदर पुनः लोड बटन) को फिर से लागू करें।


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