ग्रेड - प्लेटफ़ॉर्म को लक्षित नहीं कर सका: उपकरण श्रृंखला का उपयोग करके 'जावा एसई 8': 'जेडडीके 7 (1.7)'


127

मैं स्थानीय Gradle distrib साथ IntelliJ विचार में Gradle परियोजना आयात करने के लिए कोशिश कर रहा हूँ और निम्न संदेश के साथ स्टैकट्रेस हो रही: Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'। क्या कोई समझा सकता है कि क्या कारण हो सकते हैं?


जो JDK संस्करण आप उपयोग कर रहे हैं? उसी तरह का उपयोग करने की कोशिश करें जैसे कि ग्रेडेड में परिभाषित किया गया है
निंजा

मैंने एक ही JDK को ग्रैडल (gradle.properties के माध्यम से) और Idea प्रोजेक्ट संरचना में डाल दिया है। क्या आपका आशय यही था? क्या मैं कुछ भूल गया?
वासिली

हाँ, यह उसके बाद काम किया?
एलिजाबेथ निंजा

1
दुर्भाग्यवश नहीं।
Vasiliy Vlasov

आप intelliJ स्तर एसडीके दिखा स्क्रीन शॉट जोड़ सकते हैं?
एलिजाबेथ निंजा

जवाबों:


277

यह मेरे लिए काम किया है (Intellij Idea 2018.1.2):

1) पर जाएँ: फ़ाइल -> सेटिंग्स -> निर्माण, निष्पादन, तैनाती -> उपकरण बनाएँ -> ग्रेड

2) ग्रैडल जेवीएम: संस्करण 1.8 में परिवर्तन

3) ग्रेडल टास्क को फिर से चलाएं


4
IntelliJ 2018.1.6 (सामुदायिक संस्करण) में ऐसा कोई विकल्प नहीं है
काई

13
Mac पर, "IntelliJ Idea" -> "Preferences" -> "Build, Execution,
Dep

2
मैं फिर से इस समस्या में भाग गया ... के बाद मैं पहले से ही एक बार जो इसे जानता है कि कैसे लंबे समय से पहले
उखाड़ दिया

59

इंटेलीज 2019 के लिए:

Intellij IDEA -> प्राथमिकताएँ -> निर्माण, निष्पादन, तैनाती -> उपकरण बनाएँ -> ग्रेडल -> ग्रेड VVM

सही संस्करण का चयन करें।


33

IntelliJ 2019 के लिए, JDK 13 और gRPC:

Intellij IDEA -> प्राथमिकताएँ -> निर्माण, निष्पादन, तैनाती -> उपकरण बनाएँ -> ग्रेडल -> ग्रेड VVM

और सही संस्करण का चयन करें

आपको अपनी बिल्ड.ग्रेड निर्भरता में नीचे की पंक्ति को भी जोड़ना पड़ सकता है

compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'

25

अंत में मैंने अपना ग्रेडेल प्रोजेक्ट आयात किया। ये चरण हैं:

  1. मैंने स्थानीय ग्रैडल डिस्ट्रीब्यूट से इंटेलीज आइडिया ग्रैडल रैपर (ढाल-2.14) पर स्विच किया।
  2. मैंने JDK 8 (यह पहले 7 वें था) में सिस्टम वैरिएबल JAVA_HOMEको इंगित किया था क्योंकि मैंने प्रयोगों द्वारा पता लगाया था कि ग्रैडल रैपर केवल JDK 8 के साथ प्रोजेक्ट को संसाधित कर सकता है ।
  3. मैंने पहले से मैन्युअल रूप से बनाई गई फ़ाइल gradle.properties को हटा दिया ( org.gradle.java.homeचर के साथ ) को विंडोज़ उपयोगकर्ता .gradle निर्देशिका में , जैसा कि मैंने अनुमान लगाया, यह ग्रैडल के लिए कोई अतिरिक्त मूल्य नहीं लाया।

2
एक्लिप्स में मुझे भी यह समस्या थी, क्योंकि मेरे सिस्टम में एक JDK7 के लिए JAVA_HOME env वैरिएबल ( echo $JAVA_HOMEचेक करने के लिए रन ) था। JAVA_HOME=/path/to/jdk8 eclipseइस समस्या को कम करने के लिए JAVA_HOME सिस्टम-वाइड बदलें या ग्रहण शुरू करें
पोता

7

चूंकि मुझे 7 संगतता के साथ कुछ स्रोत संकलित करने थे, क्योंकि कुछ विरासत प्रणाली के कारण और उसी समस्या में भाग गया। मुझे पता चला कि ग्रेडल कॉन्फ़िगरेशन में जहां दो विकल्प जावा 8 पर सेट हैं

sourceCompatibility = 1.8
targetCompatibility = 1.8

इन्हें 1.7 पर स्विच करने से मेरे लिए समस्या हल हो गई, स्थापित JDK-7 को इंगित करते हुए JAVA_HOME

sourceCompatibility = 1.7
targetCompatibility = 1.7

2

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

  1. IntelliJ के ऊपरी दाएं कोने पर जाएं -> आइकन पर क्लिक करें
  2. प्रोजेक्ट स्ट्रक्चर विंडो में -> प्रोजेक्ट सिलेक्ट करें -> प्रोजेक्ट एसडीके में, सही वर्जन चुनें -> अप्लाई क्लिक करें -> अप्लाई ओके

2

मेरे पास एक बहुत ही संबंधित मुद्दा था लेकिन उच्चतर जावा संस्करणों के लिए:

$ ./gradlew clean assemble

... <other normal Gradle output>

Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

मैंने देखा कि InteliJ का उपयोग करते समय कार्य सफल हुआ। एक फ़ाइल जोड़ना (बिल्ड.ग्रेडल के समान स्तर) ने .java-versionमेरी समस्या को हल किया:

 # .java-version
 11.0.3


0

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

* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

और इसे वैज्ञानिक रूप से हल करने का तरीका है:

vi build.gradle

से बदलने के लिए:

java {
    sourceCompatibility = JavaVersion.toVersion('11')
    targetCompatibility = JavaVersion.toVersion('11')
}

बनने के लिए:

java {
    sourceCompatibility = JavaVersion.toVersion('8')
    targetCompatibility = JavaVersion.toVersion('8')
}

वैज्ञानिक विधि वह विधि है जो तर्क के लिए खुली होती है और आम हर पर काम करती है।


0

हालाँकि यह प्रश्न विशेष रूप से इंटेलीज के बारे में पूछता है, यह Google पर मुझे प्राप्त हुआ पहला परिणाम था, इसलिए मेरा मानना ​​है कि कई ग्रहण उपयोगकर्ताओं को बिल्डशिप का उपयोग करने में समान समस्या हो सकती है।

आप ग्रहण में अपने ग्रेड JVM को ग्रेड के टास्क (डिफ़ॉल्ट दृश्य में, कंसोल के पास नीचे) पर जाकर सेट कर सकते हैं, जिस विशिष्ट कार्य को आप चलाने की कोशिश कर रहे हैं, उस पर राइट-क्लिक करके "ओपन ग्रेडल रन कॉन्फ़िगरेशन ..." पर क्लिक करें। "और जावा होम टैब पर जा रहे हैं और अपनी परियोजना के लिए सही जेवीएम उठा रहे हैं।

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