অবৈধ লক্ষ্য প্রকাশ: 1.7


121

আমি একই রকম প্রশ্ন দেখেছি, তবে এখনও উত্তর খুঁজে পাইনি।

মাভেন সংকলন ব্যবহার করে, আমি পেয়েছি:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

এখানে pom.xML:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

জাভাক সংস্করণ:

javac 1.7.0_25

জাভা সংস্করণ:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

কোন ধারণা কি হতে পারে?


14
সম্ভবত মেভেন জাভা 6 ব্যবহার করে চলছে
পিটার ল্যারি

3
কেউ আপনার জাভা 6 ব্যবহার করছে কিনা তা দেখতে আপনার সমস্ত পরিবেশের ভেরিয়েবলগুলি পরীক্ষা করে দেখব eg উদাহরণস্বরূপ জাভা 7 আপনার পথে থাকতে পারে তবে আমি জাভাহোহোম বা এর মতো কোনও কিছু ব্যবহার করে ম্যাভেন মনে করি।
পিটার লরি

36
সম্পাদন mvn -version। এটি আপনাকে কোন জাভা ব্যবহার করবে তা বলবে।
জেবি নিজেট

আপনি ঠিক বলেছেন, এমভিএন জাভা ১.6 ব্যবহার করছে - আমি কীভাবে এটি পরিবর্তন করতে পারি?
করণ

1
আপনার JDK7 হোম ডিরেক্টরিতে JAVA_Home ভেরিয়েবল সেট করুন।
জেবি নিজেট

উত্তর:


159

আপনাকে আপনার jdk7 হোম ডিরেক্টরিতে JAVA_Home সেট করতে হবে, উদাহরণস্বরূপ মাইক্রোসফ্ট উইন্ডোজে:

  • "সি: \ প্রোগ্রাম ফাইল \ জাভা \ jdk1.7.0_40"

বা ওএস এক্সে:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
একটি ম্যাকে, যেখানে jdk6 এবং jdk7 ইনস্টল করা আছে, এটি বাধ্যতামূলকভাবে ~ /। প্রোফাইল:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
হ্যাঙ্ক

3
jdk8 এছাড়াও jdk7 সম্মতি পেতে ব্যবহার করা যেতে পারে
ওল্ফগ্যাং

3
ম্যাকের সাথে on /। প্রোফাইলটি পুনরায় লোড করতে মনে রাখবেন:source ~/.profile
কাইও ইগলেসিয়াস

এটি সম্ভবত অনেক কিছুর জন্য কাজ করে তবে এটি ম্যাভেনের পক্ষে যথেষ্ট নয় এবং অবশ্যই ম্যাভেন সংকলক প্লাগইনের জন্য নয়। মাইকের নিজের প্রশ্নের নিজের উত্তরটি এখানে দেখুন: স্ট্যাকওভারফ্লো প্রশ্ন 24705877 এটি আমার পক্ষে কমান্ড লাইন এবং গ্রহণের মধ্যেই সমস্যাটি সমাধান করেছে। এছাড়াও, স্ট্যাকওভারফ্লো প্রশ্নের 2503658 প্রশ্নের উত্তর @ লিংগাও এবং $ জাভ্যাকএমডি ভেরিয়েবলের ব্যবহারে সহায়তা করতে পারে।
লিটোমে

42

JAVA_HOMEএনভায়রনমেন্ট ভেরিয়েবল সেট করা ব্যতীত , আপনি আপনার ম্যাভেন রান কনফিগারেশনে সঠিক জেডিকে ব্যবহার করছেন তা নিশ্চিত করতে হবে। রান -> রান কনফিগারেশন এ যান , আপনার মেভেন বিল্ড কনফিগারেশন নির্বাচন করুন, জেআরই ট্যাবে যান এবং সঠিক রানটাইম জেআরই সেট করুন।

ম্যাভেন রান কনফিগারেশন


+1, আমি জানতাম যে আমি কিছু আপডেট করতে ভুলে যাচ্ছি ... একটি কনফিগারেশন তৈরি করার সময় ডিফল্ট বিকল্পটি (আমার জন্য) ছিল "বিকল্প জেআরই"। যদি অন্য কেউ জুড়ে চলে, তবে আপনার খাঁটি প্লাগইন এবং কনফিগারেশনগুলি সঠিকভাবে আপডেট হয়েছে কিনা তা নিশ্চিত করুন!
কিং 14

জাভা 8 এর জন্য আমার কাছে সঠিক জাভাওয়াহোম ছিল তবে আমি এখনও এটির অভাব বোধ করছি। আপনি আমার সমস্যার সমাধান করেছেন, ধন্যবাদ
dtortola

3

ইন্টেলিজ আইডিইএতে আমার সাথে এটি ঘটেছিল যখন আমি এমন একটি প্রকল্প আমদানি করি যা জাভা ১.7 নিয়ে ভাল কাজ করে চলেছিল। আমি স্পষ্টতই ইন্টেলিজকে অবহিত করিনি যে আমার মেশিনে জাভা 1.7 ইনস্টল করা হয়েছে, এবং এটি আমার সন্ধান করছে না$JAVA_HOME

একটি ম্যাক এ, এটি এর দ্বারা সমাধান করা হয়েছে:

মডিউলে রাইট ক্লিক করা | মডিউল সেটিংস | প্রকল্প

এবং প্রজেক্ট এসডিকে "নতুন" নির্বাচন করে 1.7 এসডিকে যুক্ত করুন।

তারপরে মূল ইন্টেলিজ আইডিইএ মেনুতে যান | পছন্দসমূহ | মাভেন | চর

এবং সঠিক জেআরই নির্বাচন করুন। আমার ক্ষেত্রে এটি সঠিকভাবে আপডেট হয়েছে প্রকল্প এসডিকে ব্যবহার করুন, যা এখন 1.7 was


নোট করুন যে কোনও ম্যাকের অন্তর্গত ইন্টেলিজের জন্য প্রকল্প সেটিংস এবং পছন্দসমূহ রয়েছে, আমাকে সেটিংস -> বিল্ড এক্সেক, ডিপ্লয় -> জাভা কম্পাইলার যেতে হবে এবং তারপরে প্রজেক্টের বাইটকোড সংস্করণটি প্রয়োজনীয় হিসাবে সেট করতে হবে।
খোলা হয়েছে

1

মাভেন যখন গ্রহগ্রহের বাইরে কাজ করছেন, কিন্তু জেডিকে পরিবর্তনের পরে এই ত্রুটিটি দিচ্ছেন, আপনার মেভেন রান কনফিগারেশনে যান এবং মূল পৃষ্ঠার নীচে একটি 'ম্যাভেন রানটাইম' বিকল্প রয়েছে। মাইন এম্বেডেড মাভেন ব্যবহার করছিল, তাই আমার বাহ্যিক মেভেনটি ব্যবহার করতে এটি স্যুইচ করার পরে, এটি কাজ করেছিল।


দয়া করে মাভেন রান কনফিগারেশনটি কোথায়?
আর ক্ল্যাভেন

1
আপনার বিল্ড.এক্সএমএলটিতে ডান ক্লিক করুন, 'রান হিসাবে যান' তে যান এবং তারপরে 'রান কনফিগারেশন' শেষ বিকল্প হতে হবে। আপনি যদি রান কনফিগের ধরণের মাধ্যমে স্ক্রোল করেন তবে একটি হ'ল 'ম্যাভেন বিল্ড' এবং এর মধ্যে 'ম্যাভেন রানটাইম' বেছে নেওয়ার বিকল্প রয়েছে। তার
পাশেই

0

এটি সম্ভবত অনেক কিছুর জন্য কাজ করে তবে এটি ম্যাভেনের পক্ষে যথেষ্ট নয় এবং অবশ্যই ম্যাভেন সংকলক প্লাগইনের জন্য নয়।

মাইকের নিজের প্রশ্নের নিজের উত্তরটি এখানে দেখুন: স্ট্যাকওভারফ্লো প্রশ্ন 24705877

এটি আমার জন্য কমান্ড লাইন এবং গ্রহনের মধ্যে উভয়ই সমস্যার সমাধান করেছে।

এছাড়াও, স্ট্যাকওভারফ্লো প্রশ্নের 2503658 প্রশ্নের উত্তর @ লিংগাও এবং $ জাভ্যাকএমডি ভেরিয়েবলের সাহায্যে সহায়ক হতে পারে তবে আমি নিজে এটি পরীক্ষা করে দেখিনি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.