আমি উইন্ডোজ 7 ওএসে কর্ডোভা 6.4.0 ব্যবহার করছি তবে অ্যান্ড্রয়েড সংস্করণটি তৈরি করার চেষ্টা করার পরে আমি এই ত্রুটিটি পেয়েছি:
জাভা হোম ভেরিয়েবলটি জেডিকে পথে সঠিকভাবে সেট করা আছে, তবে কেন আমি এই সমস্যাটি পাচ্ছি তা আমি জানি না। কোন পরামর্শ দয়া করে?
উত্তর:
1.8 ইনস্টল জেডিকে 1.8 সহ পূর্ববর্তী সমস্ত জেডিকে আনইনস্টল করুন
Add or Remove Programs/Program Featuresমধ্যে Windows OS। এরপরে, আগের কোনও জাভা সংস্করণ সরান। আমি একটি version 7ইনস্টল ছিল এবং তার পরে uninstalling, cordova run androidকাজ। শুভকামনা
লিনাক্সে (ডেবিয়ান / উবুন্টু) এটি একটি জাভা 1.8 এসডিকে ইন নির্বাচন করে সমাধান করা যেতে পারে
sudo update-alternatives --config javac
JAVA_HOMEসরাসরি এনভির ভেরিয়েবল পরিবর্তন করার কোনও প্রভাব আছে বলে মনে হয় না।
সম্পাদনা: মন্তব্যের প্রতিক্রিয়া: এটি প্যাকেজ ম্যানেজারের মাধ্যমে নতুন ডেবিয়ান (এবং স্পষ্টতই উবুন্টু) জাভা ইনস্টলেশনগুলি JAVA_HOMEজেআরইর অবস্থান নির্ধারণের জন্য এনভায়ারভেন্ট ভেরিয়েবল ব্যবহার করে না এই সত্যটির সাথে সম্ভবত কিছু যুক্ত রয়েছে। দেখুন এই এবং এই পোস্টে আরও তথ্যের জন্য।
javaকিন্তু না javac! এখন জাভা 9 :) আনইনস্টল করার দরকার নেই :)
JAVA_HOMEডান 1.8 জেডিকে নির্দেশ করছে, কেবলমাত্র সিস্টেম ডিফল্ট সন্তুষ্ট কর্ডোভা আপডেট করে।
আপনাকে এসডিকে কোনও উচ্চতর সংস্করণ আনইনস্টল করতে হবে না। কেবল jdk1.8.0_161 ইনস্টল করুন বা এটি ইতিমধ্যে ইনস্টল করা থাকলে নেই।
এখন কেবল JAVA_HOMEনীচের চিত্রটিতে প্রদর্শিত হিসাবে USER ভেরিয়েবল (সিস্টেম ভেরিয়েবল নয়) সেট করুন ।
এইভাবে আপনাকে উচ্চতর সংস্করণ আনইনস্টল করতে হবে না এবং সমস্যার সমাধান হবে get
যেটির জন্য কাজ করেছিল তা ছিল জেডিকে 9 আনইনস্টল করা এবং জেकेডি 8.x পুনরায় ইনস্টল করা
ম্যাক অন আনইনস্টল করার জন্য টার্মিনালে যান এবং এই পদক্ষেপগুলি অনুসরণ করুন:
cd /Library/Java/JavaVirtualMachines
sudo rm -rf jdk-9.0.1.jdk
তারপরে ওরাকল থেকে .dmg প্যাকেজটি ডাউনলোড করে jdk 8.x ইনস্টল করুন।
আপনার 8 টিরও বেশি সংস্করণ থাকতে পারে তবে কর্ডোভা কেবল জেডিকে 1.8 সমর্থন করে। এই লিঙ্কটি কর্ডোভা ডকুমেন্টেশন দেখুন
আমি কোডটির টুকরোটি দেখেছি যা আসলে আপনার জাভাটির সংস্করণ নম্বর পরীক্ষা করে। : জন্য নিম্নলিখিত দেখুন module.exports.check_java মধ্যে প্ল্যাটফর্মের / অ্যান্ড্রয়েড / Cordova / lib / অনুপস্থিত check_reqs.js । লাইনে 220. আপনি দেখতে পাবেন যে একটি রেইজেক্স এবং দলটি রেখে গেছে যে ভবিষ্যতে জাভা 10 সমর্থিত হবে।
জাভা ১০ এর মতো জাভা-র সর্বশেষ সংস্করণগুলির বিরুদ্ধে চালিত হলে বিদ্যমান নিয়মিত প্রকাশটি ব্যর্থ হবে That এটি জাভা 8 বা 9 নিম্নলিখিত বিন্যাসে সংরক্ষণ করা হয়েছে: [[8-9]। ** তবে জাভা 10 সংরক্ষণ করা হয়েছে 10 হিসাবে। ** এবং নিয়মিত প্রকাশটি 1 ফর্ম্যাটের সংস্করণটির সন্ধান করে [[8-9]। **
// Let's check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);
আমার সমাধান:
ইনস্টলারটি নির্দিষ্ট ফোল্ডারে প্রতিটি সংস্করণ ইনস্টল করার পরে আপনাকে জেআরই বা জেডিকে আপনার বর্তমান সংস্করণ আনইনস্টল করতে হবে না।
1- ইনস্টল সংস্করণ জাভা 8 এই লিঙ্কটি অনুসরণ করুন
2- আপনার পরিবেশের পরিবর্তনশীলগুলি আপডেট করুন:
জেআরই 8 এবং জেডিকে 8 ইনস্টল করা হয়েছে এমন জায়গায় তাদের নির্দেশ করে।
// On my machine
C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME
একটি নতুন টার্মিনাল সেশন খুলুন এবং ব্যর্থ হওয়া কমান্ডটি চালান। এটি এখন কাজ করা উচিত।
এটা কাজ করছে না?
এটি অন্যান্য কারণে, সম্ভাব্য ডিবাগিং প্রক্রিয়াতে ব্যর্থ হওয়া উচিত:
জেডিকে পুরানো সংস্করণ আনইনস্টল করা কাজ করবে। তবে এটি আমার অনুমানের মত কাজ হতে পারে। আমি একই সমস্যার মুখোমুখি হয়েছি এবং লক্ষ্য করেছি যে জেডিকে এবং পুরানো সংস্করণ জেডিকে পথের দুটি নতুন সংস্করণ 'path'পরিবেশগত পরিবর্তনশীলতে উল্লিখিত হয়েছে ।
'pathপরিবেশগত পরিবর্তনশীল থেকে পুরানো সংস্করণ জেডিকে পথ সরিয়ে দেওয়া আমার পক্ষে কৌশলটি করেছে। আশা করি এটিও কাউকে সাহায্য করবে।
আমার ক্ষেত্রে জাভাএহোম সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ জাভা \ jdk1.7.0_55 ting
যখন আমি লিখলাম যেখানে সেমিডিতে জাভা এটি আউটপুট করেছে সি: \ প্রোগ্রাম ফাইল (x86) \ জাভা \ jdk1.7.0_55 পাশাপাশি জাভা.এক্সি পথ, আমি জাভাওয়াহোম ভেরিয়েবলকে পরিবেশের ভেরিয়েবল থেকে সি: \ প্রোগ্রাম ফাইল \ জাভাতে পরিবর্তন করেছি d jdk1.8.0_20 এবং এটি কাজ করেছে, সুতরাং দেখে মনে হচ্ছে আমার কাছে 2 টি জেডি কে আছে এবং কর্ডোভাতে v1.8 দরকার * * একটি।
ম্যাক: নেভিগেট করুন: / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনগুলি নিশ্চিত করুন যে আপনি কেবল jdk1.8.0_201.jdk রাখছেন যদি আপনার অনেক থাকে তবে অন্য জেডিকে অপসারণ করুন
আমি @ হজিংটনের সাথে একমত এটি জাভা সংস্করণ সনাক্তকরণের কর্ডোভা কোডের বাগটি হওয়া উচিত। আমি যা করেছি তা হ'ল:
JAVA_HOMEJDK 8 পথে, এবং পরিবর্তন pathপাশাপাশি পরিবর্তনশীল।cordova buildআবার চালনা করুন ।আর ত্রুটিটি মুছে গেল!
আপনার যদি জেডিকে-র অনেকগুলি সংস্করণ থাকে তবে আপনি চালনা করতে পারেন
export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"
কর্ডোভা তৈরির আগে, জেডকের একটি নির্দিষ্ট সংস্করণ ব্যবহার করার জন্য :)
উইন্ডোজ ঠিক মিক্স পেতে বলছি , আপনার নিম্নলিখিত করা প্রয়োজন
C:\Program Files\Java\jdk1.8.0_162
আপনি \binমানটি যোগ করবেন না তা নিশ্চিত করুন ।;এবং সিস্টেমের পথে এই মানটি যুক্ত করুন যেমন C:\Program Files\Java\jdk1.8.0_162\bin;এখানে \binযোগ করা হয়েছে।দ্রষ্টব্য: পরিবেশের ভেরিয়েবলগুলি কৌশলযুক্ত a এগুলি একটি দ্বারা বন্ধ হয়ে যাওয়ার কথা ; অন্য খোলার আগে। সে কারণেই আমরা মানটি যুক্ত করার আগে একটি এবং মানটি বন্ধ করার জন্য একটি রেখেছি।
আমি টার্মিনালের মাধ্যমে Cordova : Requirements check failed for JDK 1.8 or greaterকমান্ড চালানোর সময় আয়নিক অ্যাপ তৈরি করার সময় আমি আমার ম্যাক ওএসেও এই ত্রুটিটি পেয়েছি ionic cordova build --release android।
কমান্ডের নীচে আমার সমস্যাটি সমাধান করুন: -
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home"
আশা করি এটি ভবিষ্যতে কাউকে সহায়তা করবে!
$ ls -l /Library/Java/JavaVirtualMachines/
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac /usr/local/bin/javac
$ ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac /usr/local/bin/javac
নোট করুন, বার্তাটি যা বলেছে তা সত্ত্বেও, এটির অর্থ হল যে এটি 1.8 সংস্করণ চায় এবং আপনার পরবর্তী সংস্করণ থাকলে এই বার্তাটি ছুঁড়ে দেয় ।
নিম্নলিখিতটি আমার পূর্ববর্তী প্রচেষ্টা যা আমাকে উপরের উত্তরের দিকে নিয়ে যায়, যা পরে কাজ করেছিল ... যা ইনস্টল করা হয়েছে তার উপর নির্ভর করে আপনার আলাদা কিছু করার প্রয়োজন হতে পারে, তাই সম্ভবত এই নোটগুলি সহায়তা করতে পারে:
এটি আমার jdk1.8 সংস্করণে সেট করুন
$ export PATH=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac:$PATH
এটি আমার jdk11 সংস্করণে সেট করুন
$ export PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac:$PATH
... তবে বাস্তবে এটি কাজ করে না কারণ /usr/bin/javacএখনও এটিই প্রথমে চলে:
$ which javac
/usr/bin/javac
... প্রথমে কী পথে চলেছে তা দেখতে:
$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
তার মানে আমি ওভাররাইড করতে পারি /usr/bin/javac... উত্তরের উপরের কমান্ডগুলি দেখুন ...
এই উত্তরটির lnশীর্ষে, jdk1.8 এ সেট করার কমান্ডটি আমার পক্ষে কাজ করেছে।
এই ত্রুটি বার্তাটি ব্যবহারকারীকে বিভ্রান্ত করে তোলে, নীচের মতো সাফল্যের পর্দা।
ত্রুটি বার্তাটি ব্যবহারকারী JAVA_HOME কনফিগারেশনের মাধ্যমে বিল্ডটি ব্যর্থ করে ফিক্স করার চেষ্টা করে। তবে আসল সমস্যাটি কেবল জাভাবাহোমে নয়।
আমি JAVA_Home এ সঠিক কনফিগারেশন এবং "সিস্টেম ভেরিয়েবল" এ পাথ দিয়ে এই সমস্যাটি সমাধান করি।

আশা করি সমস্যা সমাধানে সহায়তা করতে পারে, তবে জেডিকে পুনরায় ইনস্টল করবেন না।
ম্যাডনেক্সের পোস্ট করা উত্তরটি সঠিক I
আমি প্রথমে jdk 9 রেখে এবং 1.8 মুছে ফেলার চেষ্টা করেছিলাম এটি একটি ত্রুটি প্রদর্শন করবে প্রয়োজনীয়তা চেক ব্যর্থ হয়েছে
তারপরে আমি jdk9 আনইনস্টল করে এবং ১ টি পুনরায় ইনস্টল করে চেষ্টা করেছি this
কিছু সময়ের জন্য পরিবেশের ভেরিয়েবলের সাথে ঘুরে দেখার পরে আমি শেষ পর্যন্ত সমাধানটি পেয়েছি
এই মুহুর্তে আমার সিস্টেমে কেবল jdk 1.8 কর্ডোভা সংস্করণ রয়েছে: 7.1.0
-পরিবর্তনীয় পরিবেশের পরিবর্তনশীল ট্যাব -উন্ডারের ব্যবহারকারী ভেরিয়েবলগুলি একটি নতুন পরিবর্তনশীল PATH তৈরি করে - নিম্নলিখিত মানটি সিটি করুন: \ প্রোগ্রাম ফাইলগুলি জাভা \ jdk1.8.0_151 \ বিন (আপনি আপনার জেডিকে কোথায় ইনস্টল করেছেন তার উপর নির্ভর করে পরিবর্তিত হতে পারে)
এটি আপনার সমস্যার সমাধান করা উচিত আশা করি এটি সহায়তা করে
যদিও উত্তরটি ইতিমধ্যে দেওয়া হয়ে গিয়েছিল আমি কোথায় ভুল করছি তা নির্ধারণ করতে আমার কিছুটা সময় নিয়েছে তাই অন্য কারও সময় সাশ্রয় হবে এই আশায় এই পোস্ট করার সিদ্ধান্ত নিয়েছে
ঠিক নিশ্চিত করুন যে একই জেডিকে সংস্করণ (যেমন এই ক্ষেত্রে 1.8) PATHপরিবেশ পরিবর্তনশীল এবং থেকে অ্যাক্সেসযোগ্য JAVA_HOME। উদাহরণ: যদি
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152তারপর
PATHপরিবর্তনশীল এছাড়াও পথ উপরে এবং সবচেয়ে গুরুত্বপূর্ণভাবে কোনো সামনে থাকা উচিত যদি JDK / JRE ইতিমধ্যে উল্লেখ অন্যান্য পাথ (যদি থেকে থাকে) PATHপরিবর্তনশীল। অন্য কোনও অ্যাপ্লিকেশন জাভার বিভিন্ন সংস্করণ ব্যবহার না করে আপনি অন্যান্য সংস্করণ আনইনস্টল করতে পারেন to
আপনার যদি jdk8 এবং jdk9 উভয়ই ইনস্টল করা থাকে তবে আপনার উইন্ডোজটি যাচাই করতে হবে
JAVA_Home যে দিকে ইঙ্গিত করছে সেই পথে এবং।
আপনি যে লগ পোস্ট করেছেন তাতে আমি দেখতে পাচ্ছি যে জেভিএহোম জেডিকে 9 এ চলেছে।
আপনার গ্লোবাল জেভিএহোম এনভিটি ভারতে জেডিকে 8 টার্গেট করতে সংশোধন করুন বা কর্ডোভা সিএলআই ব্যবহারের আগে আপনি জেভিএহোমকে পাওয়ারশেলে পরিবর্তন করতে পারেন যদি আপনি কেবল কর্ডোভা জন্য jdk8 ব্যবহার করতে চান:
$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151"
**cordova build android**
আমি jdk1.8.0_2012 তে একই সমস্যার মুখোমুখি হয়েছি J আমি জেভিএহোম = সি: \ প্রোগ্রাম ফাইলগুলি জাভা \ jdk1.8.0_201 তৈরি করার পরে সমাধান করেছি এবং "সি: \ প্রোগ্রাম ফাইলগুলি জাভা \ jdk1.8.0_201 \ বিন" যুক্ত করেছি পথ পরিবর্তনশীল
আমি উইন্ডোজ 10 এ (ওপেন) জেডিকে 8 এবং 11 ইনস্টল করেছি এবং আমারও একই সমস্যা ছিল। আমার জন্য নিম্নলিখিত কাজ করেছেন:
এটি একটি পুরানো প্রশ্ন, তবে যেহেতু আমার কেবল একই সমস্যা ছিল, তবে ত্রুটির আরও একটি উত্স ছিল, এখানে একটি সংক্ষিপ্ত উত্তর।
উইন্ডোজ (কেবল) এবং ওয়েবস্টর্ম আইডিই 2019.2 এর সাথে সমস্যাটি অভিযুক্ত
2019.2 সংস্করণে ওয়েবস্টর্মটিতে একটি সমস্যা ছিল, কারণ এটি অভ্যন্তরীণভাবে (ওএস থেকে) লক্ষ্যবস্তু জাভা জেডকে পরিবর্তে% JAVA_HOME% ভেরিয়েবলের জন্য উন্মুক্ত jdk ব্যবহার করে।
আমার ক্ষেত্রে (হ্যাঁ এটি পুরানো, এটি একটি পুরানো কর্ডোভা প্রকল্প ...)
java -versionউইন্ডোজ cmd.exe এ কার্যকর করা হচ্ছে:
$ java -version
java version "1.8.0_221"
কিন্তু java -versionওয়েবস্টর্ম টার্মিনাল এ কার্যকর করা হচ্ছে:
$ java -version
openjdk version "11.0.3" 2019-04-16
// more output
একটি পিক্স পরে প্রকাশিত প্যাচটি নিয়ে আসে (আজ), সংস্করণ 2019.2.1। এখন ওয়েবস্টর্ম ওএস% জাভাআহোম% ভেরিয়েবলটি যেমনটি ব্যবহার করবে তেমন ব্যবহার করে এবং java -versionআউটপুট উভয় ক্ষেত্রেই অভিন্ন।
আশা করি এটি কাউকে সাহায্য করবে!
জাভা 8 বা JDK 1.8 ব্যতীত অন্য কোনও সংস্করণে জাভাতে ডিফল্ট পাথ সেট করা থাকলে ত্রুটি ঘটে *
আমার ক্ষেত্রে, আমি জাভা 8 ইনস্টল করার পরে জাভা 11 ইনস্টল করেছি
আপনি চালিয়ে পরীক্ষা করতে পারেন:
java -version
আমার ক্ষেত্রে এটি ফিরে এসেছে:
java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
এটি ঠিক করার জন্য, আমাদের জাভা পথটি জাভা 8 বাইনারি পরিবর্তে ইঙ্গিত করা উচিত তা নিশ্চিত করতে হবে
ধরে নিলাম আপনার কাছে ইতিমধ্যে জাভা 8 বা জেডিকে 1.8 রয়েছে * * ইনস্টল করা:
%JAVA_HOME%\binবা C:\Program Files\Java\jdk1.8.0_251\binযুক্ত হয়েছে%JAVA_HOME%\binজেডিকে ১.৮ এর দিকে নির্দেশ করে যে প্যাথটি অগ্রাধিকার গ্রহণ করে বা প্যাথটিকে ওভাররাইড করে ডানদিকের উপরে দুটি প্যাথ এন্ট্রি যুক্ত করেছে * *এগুলি যদি না থাকে তবে এগুলি যুক্ত করবেন না, এমন অন্যান্য প্যাট এন্ট্রিগুলি ওভাররাইড করতে পারেন %JAVA_HOME%\bin
%JAVA_HOME%\bin%JAVA_HOME%\bin জাভা 8-তে নির্দেশিত PATH এখন JDK 11-এ নির্দেশিত অন্যান্য PATH এন্ট্রিগুলির চেয়ে অগ্রাধিকার পাবে
java -version
আমার ক্ষেত্রে এটি আবার ফিরে এসেছে:
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
স্থির!
অফিসিয়াল কর্ডোভা ডকুমেন্টেশন অনুসারে এটি কেবল জেডিকে 1.8 সমর্থন করে যা তারিখের (এপ্রিল 2018) পর্যন্ত বেশি নয় । অথবা কর্ডোভাতে সংস্করণ সনাক্তকরণ স্ক্রিপ্ট নিয়ে সমস্যা হতে পারে।
আমি কেবল পুরানো জেডিকে ফোল্ডারটির সাথে নতুন নামকরণ করেছি _, যদি আমার আরও প্রয়োজন হয় তবে তা কাজ করে।
C:\Program Files (x86)\Java\_jdk1.7.0_40
C:\Program Files (x86)\Java\_jre7
আমি উইন্ডোজ ব্যবহার করছি এবং দুটি জেডিকে 1.8 এবং 14 সংস্করণ ব্যবহার করছি ...
একই সমস্যার মুখোমুখি হয়েছিল এবং কিছু ডিবাগিংয়ের পরে সমাধানটি সন্ধান করুন।
এবং এটি সমাধান
উবুন্টু / ডেবিয়ান লিনাক্স এই উত্তরটি সংস্করণ 8 openjdk ইনস্টল এবং মাধ্যমে ডিফল্ট সেট করা হয়update-alternatives
# install (open)jdk 8
sudo apt-get install -y openjdk-8-jdk
# update java compiler and set to 1.8
update-alternatives --config javac
# update java runtime (optional)
update-alternatives --config java
# Also set $JAVA_HOME and $PATH to your .bashrc (optional)
echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
echo 'export PATH="$PATH:$JAVA_HOME/bin' >> ~/.bashrc
# load in current bash session
source ~/.bashrc