घातक त्रुटि संकलन: अमान्य लक्ष्य रिलीज़: 1.8 -> [सहायता 1]


170

इसी तरह की समस्या अमान्य लक्ष्य रिलीज़ पर पोस्ट की गई: 1.7 लेकिन ब्लॉग का अनुसरण करने के बाद भी मेरी समस्या अभी भी अनसुलझी है।

लक्ष्य को निष्पादित करने में विफल। org.apache.maven.plugins: maven-compiler-plugin: 3.1: प्रोजेक्ट hm_app पर संकलन (डिफ़ॉल्ट-संकलन): घातक त्रुटि संकलन: अमान्य लक्ष्य रिलीज़: 1.8 -> [सहायता 1]

जब मैं इस समस्या का सामना कर रहा था तब मैं ट्यूटोरियल के रूप में अनुसरण कर रहा था ।

abt java & mvn

C:\mvn>echo %JAVA_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

आउटपुट

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4

3
... और आपको यकीन है कि आपने जावा 8 कहीं स्थापित किया है?
मोटो

मेरे पास x86, 64 java 7 और no java 8
rvd

3
ठीक है। तो क्यों आप जावा 8 संकलक के बिना जावा 8 कोड को संकलित करने की कोशिश कर रहे हैं?
मोटो

@ माको टाय ने मेरी समस्या को देखने के लिए java 8 स्थापित कर इसे हल किया .... ty man :)
rvd

@ मैकाटो अंत में मुझे वही मिला जो आप कह रहे थे "ठीक है। तो आप जावा 8 कोडर के बिना जावा 8 कोड को संकलित करने की कोशिश क्यों कर रहे हैं?" इसलिए मैंने अभी-अभी अपनी pom.xml फ़ाइल java.version> 1.8 </java.version> से java.version> 1.7 </java.version> में परिवर्तित किया और मैं java7 पर mvan संकलन का उपयोग भी कर सका
rvd

जवाबों:


281

आपने अपना %JAVA_HOMEjdk 1.7 सेट कर दिया है, लेकिन आप 1.8 का उपयोग करके संकलन करने का प्रयास कर रहे हैं। Jdk 1.8 को इनस्टॉल करें और सुनिश्चित करें कि आपके %JAVA_HOMEपॉइंट्स को बंद करें या टारगेट रिलीज़ को 1.7 पर छोड़ें।

अमान्य लक्ष्य रिलीज़: 1.8

लक्ष्य विमोचन jdk संस्करण को दर्शाता है।


7
मेरे मामले में एक और संभव समाधान संपादित करें pom.xml फ़ाइल java.version> 1.8 </java.version> से java.version> 1.7 </java.version>
rvd

1
यह विशेष रूप से है जहाँ मावे जावा संस्करण के लिए दिखता है। तो प्रभावी रूप से आपने जावा संस्करण को अपने% JAVA_HOME पर स्थापित कर लिया है।
Zavior

2
मेरे मैक पर, मैं JAVA_HOME = /usr/libexec/java_home -v 1.81.8DKK के लिए उचित स्थान पर JAVA_HOME सेट करने के लिए निर्यात करता हूं । 1.8 के स्थान पर अपने पसंदीदा संस्करण की आपूर्ति करें। (= 8 के बाद और बाद में बैकटिक्स हैं)।
ब्रूस szalwinski

हां, राइट यू मुझे मिल गया। मैंने इसे एक और विरासत कार्यक्रम को संकलित करने के लिए बदल दिया जो केवल कल 1.7 का समर्थन करता है: डी धन्यवाद!
दावुत गार्बुज़

31

मूल्य को प्लगइन में रखें:

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

त्रुटि का उपयोग किया गया था:

<source>${java.version}</source>
<target>${java.version}</target>

2
मेरे मामले में, समाधान स्रोत और लक्ष्य को 1.7 पर सेट करना है
विचारशील

मुझे यह किस फ़ाइल में मिल सकता है?
युसरिल मौलिदन राजी

21

मेरे मामले में मावेन "रन कॉन्फ़िगरेशन" गलत JRE (1.7) का उपयोग कर रहा था। रन की जांच करना सुनिश्चित करें -> रन कॉन्फ़िगरेशन -> (टैब) JRE को कुछ jdk1.8.x होना चाहिए।


यह सच है, इसलिए अगर अगली बार यह त्रुटि आती है, तो हम निम्नलिखित चीजों की जांच करेंगे: JAVA_HOME, BUILD_Configuration, RUN_Configuration
Farhan

13

मुद्दा सुलझ गया क्योंकि मैं एक JDK 1.7 की ओर इशारा कर रहा था और JRE 1.8 की ओर इशारा कर रहा था। मेरी कमांड टाइपिंग में चेक करें

java -version

तथा

javac -version.

दोनों समान होना चाहिए।  


5

यहाँ ग्रहण के लिए मैंने अपनी समस्या हल की है:

  1. वरीयताएँ -> संकलक -> संकलक शिकायतकर्ता स्तर (1.8 में परिवर्तन) यहां छवि विवरण दर्ज करें

  2. संदर्भ -> स्थापित JREs -> JAVA SE 8 1.8 का चयन करें यहां छवि विवरण दर्ज करें

  3. मावेन बिल्ड के रूप में रन का उपयोग करके मावेन के माध्यम से पुनर्निर्माण करें।

यह आपको अमान्य लक्ष्य त्रुटि अब नहीं दिखाना चाहिए।
नोट: मुझे अपने टर्मिनल में किसी अन्य चर को सेट या बदलने की आवश्यकता नहीं थी। उम्मीद है की यह मदद करेगा।


2

यह कहते हुए कि आपके प्रॉफिटेबल में गतिशील रूप से आपकी देखभाल होगी $JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)

अपने खोल को बाद में बंद करें, एक नया खोलें और साथ परीक्षण करें

echo $JAVA_HOME

इसे कुछ इस तरह प्रदर्शित करना चाहिए

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

यदि नहीं , तो अपने स्टार्टअप स्क्रिप्ट में JAVA_HOME के ​​किसी भी अन्य असाइनमेंट को हटा दें। याद रखें, कि ये स्टार्टअप स्क्रिप्ट शुरू होती हैं .ताकि वे छिपे हों और *वाइल्डकार्ड का उपयोग करते समय शामिल नहीं होंगे , जैसे यदि आप अपने घर की निर्देशिका की सभी फ़ाइलों को प्राप्त करना चाहते हैं, तो आपको निम्न करने की आवश्यकता है:

grep -s JAVA_HOME ~/.* --exclude=.bash_history

1

मुझे जिस समस्या का सामना करना पड़ रहा था वह यह था कि मैं कमांड प्रॉम्प्ट से नहीं बल्कि एक्लिप्स से एक मावेन बिल्ड बनाने में सक्षम था। मेरे लिए ग्रहण में क्या काम किया है, मैंने रन कॉन्फ़िगरेशन को JDK के अंदर JRE फ़ोल्डर में इंगित करने के लिए बदल दिया है, बजाय इसे छोड़ने के JDK फ़ोल्डर केवल मानक के अनुसार। यह समाधान आपके लिए भी काम कर सकता है, लेकिन यह कोशिश करें कि अगर और केवल सभी जावा पथ सही हैं, तो java और javac pom.xml के लक्ष्य में मौजूद समान संस्करण दिखा रहे हैं।


यह मेरी समस्या और समाधान था।
स्किचन

1

मुझे डॉक्यू पर तैनात इस मुद्दे का सामना करना पड़ा, किसी कारण से यह जेडीके 1.7 चुन रहा था

एक system.propertiesफ़ाइल बनाने और सेटिंग java.runtime.version=1.8से समस्या हल हो गई। डोकू अब जावा संस्करण 8 का उपयोग करता है। हेरोकू पर एक जेडीके चुनना

मैंने पहले कभी ऐसा नहीं किया था ...


संकेत अभी भी काम करता है। मुझे डॉक्यू में 11 में जावा संस्करण को बदलने के लिए बहुत कुछ खोजना पड़ा। बहुत बहुत धन्यवाद।
मिस्टर वेंडरबिल्ट

1

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

  <properties>
    <java.version>1.8</java.version>
    <maven.compiler.release>8</maven.compiler.release>
  </properties>

हां, maven.compiler.releaseमेरे मावेन प्रोजेक्ट में इसे तय करना।
कोर्टेक्स

1

IntelliJ का उपयोग करते हुए मुझे बस एक और (उच्चतर) JDK संस्करण स्थापित करना था। आईडीई को पुनरारंभ करने के बाद, सब कुछ काम किया और यहां तक ​​कि सभी निर्भरताएं हल हो गईं।


1
इंटेलीज को फिर से शुरू करना मेरे लिए महत्वपूर्ण था। मैंने JAVA_HOME के ​​पर्यावरण चर को अलग जावा संस्करण में इंगित करने के लिए अद्यतन किया, लेकिन ऐसा प्रतीत होता है कि सिस्टम चर मौजूदा प्रधान सत्र में ताज़ा नहीं होता है। संभवतः यह नया टर्मिनल सत्र बनाने के लिए पर्याप्त होगा।
उबोगेश

0

यह प्रश्न डॉकटर के बारे में स्पष्ट रूप से नहीं पूछ रहा था, लेकिन मुझे वही त्रुटि मिली जब मेरे पास एक pom.xml फ़ाइल थी जो लक्ष्यीकरण कर रही थी ...

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.9</maven.compiler.source>
  <maven.compiler.target>1.9</maven.compiler.target>
</properties>

... लेकिन फिर खुद से "मावेन" निर्दिष्ट करके एक डॉकर कंटेनर के खिलाफ परीक्षण चलाने की कोशिश की।

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test

मेरे लिए, ठीक उसी संस्करण को लक्षित करना था जिसकी मुझे आवश्यकता थी।

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test

(आप यहां और जान सकते हैं ।)


0

विंडोज मशीन पर आप जावा संस्करण को अस्थायी रूप से सेट कर सकते हैं।
उदाहरण के लिए, संस्करण को जावा 8 में बदलने के लिए, इस कमांड को cmdनिम्न पर चलाएँ :

set JAVA_HOME=C:\\...\jdk1.8.0_65

0

एक बल मावेन अपडेट करें जो संगत 1.8 जार संस्करणों को लाएगा और फिर निर्माण करते समय, JRE संस्करणों को Execute परिवेश में 1.8 रन कॉन्फ़िगरेशन से अपडेट करें और RUN को हिट करें


0

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


-4

मेरे मामले में क्या काम किया है:

मैंने pom.xmlनीचे के रूप में प्लग-इन में से एक को खोला और बदल दिया।

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

इससे पहले कि मैं स्रोत और लक्ष्य टैग दोनों को संपादित करता 1.8, मैंने उसे बदल दिया 1.7और यह काम कर गया।


क्या आप उस बदलाव को समझते हैं जो आपने किया है या आपने केवल सबसे अच्छा होने की उम्मीद में बदलाव किया है?
पोपेय

दोनों। मैं समझता हूं कि यह परियोजना अब जावा 1.7 संस्करण पर चल रही है। मैंने उम्मीद की कि यह काम करेगा।
VIJAYKUMAR REDDY ALAVALA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.