Cordova: การตรวจสอบข้อกำหนดล้มเหลวสำหรับ JDK 1.8 หรือสูงกว่า


93

ฉันใช้ Cordova 6.4.0 ใน Windows 7 OS แต่ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามสร้างเวอร์ชัน Android:

คำอธิบายปัญหา

ตัวแปร Java Home ถูกตั้งค่าอย่างถูกต้องไปยังเส้นทาง JDK แต่ฉันไม่รู้ว่าทำไมฉันถึงได้รับปัญหานี้ ข้อเสนอแนะใด ๆ กรุณา?


3
ตกลง. ฉันมีปัญหาเดียวกัน แต่ฉันไม่สามารถดาวน์โหลดเวอร์ชัน 1.8 ได้เนื่องจากมันซ่อนอยู่ภายใต้ชื่ออื่น มันคือ 8u152 หลังจากนั้นสองสามชั่วโมงฉันพบที่นี่: oracle.com/technetwork/java/javase/downloads/…
user2367101

คำตอบ:


58

ถอนการติดตั้ง JDK ก่อนหน้าทั้งหมดรวมถึง 1.8 ติดตั้ง JDK 1.8


3
@Urbycoz คุณเพียงแค่ต้องไปในAdd or Remove Programs/Program Features Windows OSจากนั้นลบ Java เวอร์ชันก่อนหน้าออก ฉันversion 7ติดตั้งแล้วและหลังจากuninstallingนั้นก็ใช้cordova run androidงานได้ โชคดี.
Aakash

1
แต่มันหมายความว่าอย่างไร? Cordova เลือก JDK อย่างไรหากติดตั้ง JDK ที่แตกต่างกัน เป็นไปไม่ได้ที่คุณจะมี JDK เพียงเครื่องเดียว (เช่น build machine)?
Bruno Ranschaert

คุณยังต้องตั้งค่าตัวแปร envionment เพื่อให้ Cordova สามารถค้นหาเส้นทางไปยัง JDK superuser.com/questions/949560/…
Yvonne Aburrow

19
@MadNeox การถอนการติดตั้งเวอร์ชันอื่นเป็นเพียงวิธีแก้ปัญหาไม่ใช่วิธีแก้ปัญหา
คานธี

ทำเคล็ดลับให้ฉัน ไปที่ appwiz.cpl (จาก windows cmd) และลบ java 7 และ java sdk 7
Ortiz

53

ใน Linux (Debian / Ubuntu) สามารถแก้ไขได้โดยเลือก Java 1.8 SDK ใน

sudo update-alternatives --config javac

การเปลี่ยนJAVA_HOMEตัวแปร env โดยตรงดูเหมือนจะไม่มีผลใด ๆ

แก้ไข: การตอบกลับความคิดเห็น:สิ่งนี้อาจเกี่ยวข้องกับข้อเท็จจริงที่ว่าการติดตั้ง Java Debian ใหม่ (และเห็นได้ชัดว่า Ubuntu) ผ่านตัวจัดการแพ็คเกจไม่ได้ใช้JAVA_HOMEตัวแปรสภาพแวดล้อมเพื่อกำหนดตำแหน่งของ JRE ดูสิ่งนี้และโพสต์นี้สำหรับข้อมูลเพิ่มเติม


1
คุณทำให้วันของฉัน ฉันลองทุกอย่างในสองสามวันที่ผ่านมา Tnx เยอะมาก แต่ทำไมถึงใช้ได้? เหตุใดตัวแปรการตั้งค่าจึงไม่มีผล?
my-

1
ทำงานให้ฉันด้วยบน Ubuntu ... ฉันทำไปแล้วjavaแต่ไม่ใช่javac! ตอนนี้ไม่จำเป็นต้องถอนการติดตั้ง Java 9 :)
hughjdavey

ข้อสังเกตเดียวกันที่นี่ แม้ว่าจะJAVA_HOMEชี้ไปที่ 1.8 JDK ที่ถูกต้อง แต่การอัปเดต Cordova ที่เป็นค่าเริ่มต้นของระบบเท่านั้น
myoan

1
เมื่อทำ sudo update-ทางเลือก --config javac มีทางเลือกเดียวในกลุ่มลิงค์ javac (ให้ / usr / bin / javac): / usr / lib / jvm / java-11-openjdk-amd64 / bin / javac ไม่มีอะไรให้กำหนดค่า . ฉันต้องกลับไปที่ java-8-openjdk จะทำได้ไหม
Taieb

เหตุใดจึงเป็นวิธีแก้ปัญหาใน Ubuntu เช่นเดียวกับที่ myoan กล่าวทำไมต้องอัปเดต Cordova ที่เป็นค่าเริ่มต้นของระบบ?
Jithin

40

คุณไม่จำเป็นต้องถอนการติดตั้ง sdk เวอร์ชันที่สูงกว่า เพียงแค่ติดตั้ง jdk1.8.0_161 หรือไม่หากติดตั้งแล้ว

ตอนนี้เพียงตั้งค่าJAVA_HOMEตัวแปร USER (ไม่ใช่ตัวแปรระบบ) ดังที่แสดงในภาพด้านล่าง

ป้อนคำอธิบายภาพที่นี่

วิธีนี้ทำให้คุณไม่ต้องถอนการติดตั้งเวอร์ชันที่สูงขึ้นและปัญหาจะได้รับการแก้ไข


9
อย่าลืมปิดเทอร์มินัล / IDE ก่อนลองรันคำสั่งของคุณอีกครั้ง
Daniel

1
หรือคุณสามารถเรียกใช้ $ ~ / .bashrc เพื่อส่งออกตัวแปร env อีกครั้ง
Nick Cuevas

33

สิ่งที่ใช้ได้ผลคือการถอนการติดตั้ง jdk 9 และติดตั้ง jkd 8.x ใหม่

ใน Mac เพื่อถอนการติดตั้งไปที่เทอร์มินัลแล้วทำตามขั้นตอนนี้:

cd /Library/Java/JavaVirtualMachines

sudo rm -rf jdk-9.0.1.jdk

จากนั้นติดตั้ง jdk 8.x โดยดาวน์โหลดแพ็คเกจ. dmg จาก Oracle



23

คุณอาจมีเวอร์ชันที่มากกว่า 8 แต่ Cordova รองรับเฉพาะ JDK 1.8 ดูลิงค์นี้เอกสาร Cordova

ฉันได้ดูส่วนของโค้ดที่ตรวจสอบหมายเลขเวอร์ชันของ java ของคุณ มองหาต่อไปนี้: module.exports.check_javaในแพลตฟอร์ม / Android / Cordova / lib / check_reqs.js ในบรรทัด 220 คุณจะเห็น regex และความคิดเห็นที่ทีมงานทิ้งไว้ว่า Java 10 จะได้รับการสนับสนุนในอนาคต

นิพจน์ทั่วไปที่มีอยู่จะล้มเหลวเมื่อรันกับ java เวอร์ชันล่าสุดเช่น Java 10 นั่นเป็นเพราะ Java 8 หรือ 9 ถูกบันทึกในรูปแบบต่อไปนี้: 1. [8-9] ** แต่ Java 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);

วิธีแก้ปัญหาของฉัน:

คุณไม่จำเป็นต้องถอนการติดตั้ง JRE หรือ JDK เวอร์ชันปัจจุบันเนื่องจากโปรแกรมติดตั้งจะติดตั้งแต่ละเวอร์ชันในโฟลเดอร์เฉพาะ

1- ติดตั้งเวอร์ชัน Java 8 ตามลิงค์นี้

2- อัปเดตตัวแปรสภาพแวดล้อมของคุณ:

  • JAVA_HOME หากคุณติดตั้ง JDK
  • JRE_HOME หากคุณติดตั้ง JRE

โดยชี้ไปยังตำแหน่งที่ติดตั้ง JRE 8 และ JDK 8

// On my machine   
C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME

เปิดเซสชันเทอร์มินัลใหม่และรันคำสั่งที่ล้มเหลว ตอนนี้ควรใช้งานได้แล้ว

ไม่ทำงาน?

หากล้มเหลวด้วยเหตุผลอื่น ๆ กระบวนการดีบักที่เป็นไปได้:

  • ตรวจสอบให้แน่ใจว่าตัวแปร JAVA_HOME และ JRE_HOME เป็นตัวแปรระบบ
  • ตรวจสอบให้แน่ใจว่าได้เพิ่มตัวแปรลงในเส้นทางของผู้ใช้ของคุณแล้ว

นี่เป็นคำตอบเดียวที่ถูกต้องสำหรับฉัน ดูข้อมูลเพิ่มเติมได้ที่ลิงค์นี้evothings.com/doc/build/cordova-install-linux.html
Dara Java

17

การถอนการติดตั้ง JDK เวอร์ชันเก่าจะใช้งานได้ แต่อาจเป็นวิธีแก้ปัญหาที่ฉันเดา ฉันประสบปัญหาเดียวกันและสังเกตเห็นว่าเส้นทาง JDK เวอร์ชันใหม่และเวอร์ชันเก่ากว่าได้รับการกล่าวถึงใน'path'ตัวแปรสภาพแวดล้อม

การลบพา ธ JDK เวอร์ชันเก่าออกจาก'path'ตัวแปรสภาพแวดล้อมเป็นเคล็ดลับสำหรับฉัน หวังว่ามันจะช่วยใครบางคนด้วย


หากคุณกำลังตั้งค่าตัวแปรสภาพแวดล้อมคุณอาจพบว่าsuperuser.com/questions/949560/…
Yvonne Aburrow

ใช่ฉันสามารถรันคำสั่ง build ด้วยสิ่งนี้ได้ แต่ยังคงมีปัญหากับคำสั่ง run 'ionic cordova run android' แสดงข้อผิดพลาด INSTALL FAILED UPDATE ไม่เข้ากันได้
supriya chauhan

@supriyachauhan คุณสามารถลองติดตั้งสิ่งที่สมบูรณ์อีกครั้งได้อีกครั้ง มิฉะนั้นคุณอาจต้องให้รายละเอียดอย่างละเอียดเพื่อ จำกัด ปัญหาให้แคบลง
คานธี

9

ฉันพบว่าตัวแปรสภาพแวดล้อมเส้นทางของฉันชี้ไปที่ java 1.7 ในขณะที่ JAVA_HOME ชี้ไปที่ 1.8 ดังนั้นฉันจึงแก้ไขตัวแปรเส้นทางเป็น 1.8 และฉันก็สบายดี


8

ในกรณีของฉัน JAVA_HOME ชี้ไปที่C: \ Program Files (x86) \ Java \ jdk1.7.0_55

เมื่อฉันเขียนโดยที่ javaใน cmd มันส่งออก C: \ Program Files (x86) \ Java \ jdk1.7.0_55 พร้อมกับพา ธ java.exe ฉันได้เปลี่ยนตัวแปร JAVA_HOME จากตัวแปรสภาพแวดล้อมเป็นC: \ Program Files \ Java \ jdk1.8.0_20 & มันใช้งานได้ดูเหมือนว่าฉันมีอินสแตนซ์ jdk 2 เครื่องและ Cordova ต้องการ v1.8. * หนึ่ง


ตรวจสอบว่าตัวแปร Path ของคุณชี้ไปที่ใด ฉันมี JAVA_HOME ที่ชี้ไปที่ 1.8 แต่ใน Path นั้นชี้ไปที่เวอร์ชันอื่น ทำงานได้ดีหลังจากที่ฉันจัดตำแหน่งทั้งสอง!
อาบี

6

MAC: ไปที่: / Library / Java / JavaVirtualMachines ตรวจสอบให้แน่ใจว่าคุณมี jdk1.8.0_201.jdk เท่านั้นหากคุณมีจำนวนมากให้ลบ JDK อื่น ๆ


5

ฉันเห็นด้วยกับ @Hozington นี่ควรเป็นข้อบกพร่องของรหัส Cordova ในการตรวจจับเวอร์ชัน Java สิ่งที่ฉันทำคือ:

  1. เก็บ JDK 10
  2. ติดตั้ง JDK 8
  3. เปลี่ยนJAVA_HOMEเส้นทางของ JDK 8 และเปลี่ยนpathตัวแปรด้วย
  4. รีสตาร์ท "cmd" และเรียกใช้cordova buildอีกครั้ง

และข้อผิดพลาดหายไป!


4

หากคุณมี JDK หลายเวอร์ชันคุณสามารถเรียกใช้

export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"

ก่อนสร้าง Cordova เพื่อใช้ jdk เวอร์ชันเฉพาะ :)


4

คำตอบสำหรับ MacOS เมื่อติดตั้ง Java หลายเวอร์ชันและไม่จำเป็นต้องถอนการติดตั้ง

แสดงเวอร์ชันของ Java ที่ฉันติดตั้ง:

$ ls -l /Library/Java/JavaVirtualMachines/

วิธีตั้งค่าเป็นเวอร์ชัน jdk1.8 ของฉัน:

$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac /usr/local/bin/javac

การตั้งค่าเป็นเวอร์ชัน jdk11 ของฉัน:

$ 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... ดูคำสั่งที่ด้านบนของคำตอบ ...
คำสั่งเพื่อตั้งค่าเป็น jdk1.8 โดยใช้lnที่ด้านบนของคำตอบนี้คือสิ่งที่ใช้ได้ผลสำหรับฉัน


3

คนที่จะได้รับการผสมผสานอย่างถูกต้องบนWindowsคุณต้องทำสิ่งต่อไปนี้

  1. ดาวน์โหลดและติดตั้งJDK 1.8หรือสูงกว่าทุกเวอร์ชัน
  2. เปิดตัวแปรสภาพแวดล้อมสร้างตัวแปรสภาพแวดล้อมที่เรียกว่าJAVA_HOMEและตั้งค่าเป็นเส้นทางการติดตั้ง JDK C:\Program Files\Java\jdk1.8.0_162 ตรวจสอบให้แน่ใจว่าคุณไม่ได้เพิ่ม\binในค่า

ป้อนคำอธิบายภาพที่นี่

  1. ในตัวแปรเส้นทางระบบของคุณให้ใส่เครื่องหมายอัฒภาค;และเพิ่มค่านี้ในเส้นทางระบบเช่นC:\Program Files\Java\jdk1.8.0_162\bin;นี่\binคือเพิ่ม

หมายเหตุ:ตัวแปรสภาพแวดล้อมนั้นยุ่งยากพวกเขาควรจะปิดโดย; ก่อนเปิดอีกอัน นั่นคือเหตุผลที่เราใส่ค่าหนึ่งก่อนเพิ่มค่าและอีกหนึ่งค่าเพื่อปิด

ป้อนคำอธิบายภาพที่นี่

  1. ตอนนี้ปิดเทอร์มินัลแล้วเปิดใหม่จากนั้นเรียกใช้คำสั่งก่อนหน้า

มีการผสมผสานจาวาที่อยู่ ... จาก JAVA_HOME, PATH Cordova ใช้ PATH ซึ่งอาจชี้ไปที่ java12 / 13
bortunac

3

บางครั้งเปลี่ยนเส้นทางแล้วjava-homeไม่ได้ผล คุณต้องเพิ่ม

C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools

ไปยังเส้นทางตัวแปรสภาพแวดล้อมเช่นกัน


3

วันนี้ฉันได้รับข้อผิดพลาดนี้Cordova : Requirements check failed for JDK 1.8 or greaterใน Mac OS ของฉันในขณะที่สร้างแอพ Ionic เมื่อฉันเรียกใช้คำสั่งionic cordova build --release androidผ่านเทอร์มินัล

ด้านล่างคำสั่งแก้ไขปัญหาของฉัน: -

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home"

หวังว่ามันจะช่วยใครบางคนในอนาคต!


2

ข้อความแสดงข้อผิดพลาดนี้ทำให้ผู้ใช้สับสนหน้าจอความสำเร็จดังต่อไปนี้Cordova สร้างความสำเร็จ

ข้อความแสดงข้อผิดพลาดทำให้ผู้ใช้พยายามแก้ไขบิลด์ล้มเหลวด้วยการกำหนดค่า JAVA_HOME แต่ปัญหาที่แท้จริงไม่ได้อยู่ที่ JAVA_HOME เท่านั้น

ฉันแก้ไขปัญหานี้ด้วย config ที่ถูกต้องใน JAVA_HOME และ Path ใน "system variable" ป้อนคำอธิบายภาพที่นี่

หวังว่าจะช่วยแก้ไขปัญหาได้ แต่ไม่สามารถติดตั้ง JDK ใหม่ได้


2

คำตอบที่โพสต์โดย MadNeox นั้นถูกต้องฉันประสบปัญหาที่คล้ายกันฉันติดตั้ง jdk 9 แล้วเช่นเดียวกับเวอร์ชัน 1.8

ฉันพยายามครั้งแรกโดยเก็บ jdk 9 และลบ 1.8 มันจะแสดงข้อผิดพลาดการตรวจสอบข้อกำหนดล้มเหลว

จากนั้นฉันลองโดยถอนการติดตั้ง jdk9 และติดตั้งใหม่ 1 ครั้งนี้แสดงว่าล้มเหลวในการเรียกใช้ javac-version

หลังจากเล่นกับตัวแปรสภาพแวดล้อมมาระยะหนึ่งในที่สุดฉันก็ได้วิธีแก้ปัญหา

ณ จุดนี้ระบบของฉันมีเฉพาะรุ่น jdk 1.8 Cordova: 7.1.0

- เปิดแท็บตัวแปรสภาพแวดล้อม - ภายใต้ตัวแปรผู้ใช้สร้างตัวแปรใหม่ PATH - ให้ค่าต่อไปนี้ C: \ Program Files \ Java \ jdk1.8.0_151 \ bin (อาจเปลี่ยนแปลงได้ขึ้นอยู่กับตำแหน่งที่คุณติดตั้ง jdk ของคุณ)

สิ่งนี้ควรแก้ปัญหาของคุณหวังว่าจะช่วยได้

แม้ว่าจะได้รับคำตอบไปแล้ว แต่ก็ต้องใช้เวลาพอสมควรในการคิดว่าตัวเองทำอะไรผิดจึงตัดสินใจโพสต์โดยหวังว่าจะช่วยประหยัดเวลาของคนอื่นได้


1

ตรวจสอบให้แน่ใจว่า JDK เวอร์ชันเดียวกัน (เช่น 1.8 ในกรณีนี้) สามารถเข้าถึงได้จากPATHตัวแปรสภาพแวดล้อมและJAVA_HOME. ตัวอย่าง: ตัวแปรIf JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152then PATHควรมีเส้นทางด้านบนและสำคัญก่อนเส้นทางอื่น ๆ (ถ้ามี) ของ if JDK / JRE ที่กล่าวถึงในPATHตัวแปร คุณสามารถเลือกถอนการติดตั้งเวอร์ชันอื่นได้หากไม่มีแอปพลิเคชันอื่นใช้ java เวอร์ชันอื่น


1

หากคุณติดตั้งทั้ง jdk8 และ jdk9 คุณต้องตรวจสอบว่าเป็นเวอร์ชันใด

ในเส้นทางและจุดที่ JAVA_HOME ชี้ไป

ในบันทึกที่คุณโพสต์ฉันเห็นว่า JAVA_HOME กำลังนำไปสู่ ​​JDK9

แก้ไข globel JAVA_HOME env var เพื่อกำหนดเป้าหมาย JDK8 หรือคุณสามารถเปลี่ยน JAVA_HOME ใน powershell ก่อนที่คุณจะใช้ Cordova CLI หากคุณต้องการใช้ jdk8 สำหรับ Cordova เท่านั้น:

$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151"

**cordova build android**

1

หากคุณติดตั้ง Java หลายเวอร์ชันและต้องการเก็บไว้คุณต้องตรวจสอบสิ่งต่อไปนี้:

  • JAVA_HOME ชี้ไปที่ jdk1.8 ของคุณ
  • ในตัวแปร PATH ของคุณคุณต้องตรวจสอบว่าเส้นทาง jdk1.8 \ bin อยู่ก่อนพา ธjdk \ bin อื่น

1

ฉันประสบปัญหาเดียวกันกับ jdk1.8.0_201 มันได้รับการแก้ไขเมื่อฉันสร้าง JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_201 และเพิ่ม "C: \ Program Files \ Java \ jdk1.8.0_201 \ bin" ในตัวแปรเส้นทาง


1

ฉันได้ติดตั้ง (เปิด) JDK 8 และ 11 บน Windows 10 และพบปัญหาเดียวกัน สำหรับฉันการทำงานต่อไปนี้:

  1. ตั้งค่า JAVA_HOME ให้ชี้ไปที่ JDK 8 (กล่าวถึงในหลายคำตอบก่อนหน้านี้) และ
  2. ลบ (!) JDK 11 ออกจาก PATH ตามที่ปรากฎว่าแม้ว่าจะแสดงเส้นทาง JAVA_HOME ที่ชี้ไปที่ JDK 8 - Cordova เข้าถึง JDK 11 ที่รวมอยู่ใน PATH ซึ่งทำให้การตรวจสอบเวอร์ชัน Java ล้มเหลว

1

เป็นคำถามเก่า แต่เนื่องจากฉันเพิ่งมีปัญหาเดียวกัน แต่ข้อผิดพลาดมีแหล่งอื่นนี่คือคำตอบสั้น ๆ

เกิดปัญหาบน Windows (เท่านั้น) และกับ Webstorm IDE 2019.2

ในเวอร์ชัน 2019.2 Webstorm มีปัญหาเนื่องจากใช้ open jdk ภายในสำหรับตัวแปร% JAVA_HOME% แทนที่จะเป็น (จากระบบปฏิบัติการ) ที่กำหนดเป้าหมาย java jdk

ในกรณีของฉัน (ใช่มันเก่าแล้วมันเป็นโครงการ Cordova เก่า ... )

การดำเนินการjava -versionใน Windows cmd.exe:

$ java -version
java version "1.8.0_221"

แต่ดำเนินการjava -versionในเทอร์มินัล Webstorms:

$ java -version
openjdk version "11.0.3" 2019-04-16
// more output

การแก้ไขมาพร้อมกับแพตช์ที่ออกในภายหลัง (วันนี้) เวอร์ชัน 2019.2.1 ตอนนี้ Webstorm ใช้ตัวแปร os% JAVA_HOME% ตามที่ควรและjava -versionผลลัพธ์จะเหมือนกันในทั้งสองกรณี

หวังว่าจะช่วยใครสักคน!


1

ข้อผิดพลาดเกิดขึ้นเมื่อเส้นทางเริ่มต้นไปยัง java ถูกตั้งค่าเป็นเวอร์ชันอื่นที่ไม่ใช่ Java 8 หรือ JDK 1.8 *

สำหรับกรณีของฉันฉันได้ติดตั้ง Java 11 หลังจากติดตั้ง Java 8

คุณสามารถทดสอบโดยเรียกใช้:

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)

ในการแก้ไขปัญหานี้เราต้องตรวจสอบให้แน่ใจว่าพา ธ java ชี้ไปที่ไบนารี Java 8 แทน

สมมติว่าคุณติดตั้ง Java 8 หรือ JDK 1.8 แล้ว *:

  1. ตรวจสอบให้แน่ใจว่าได้ตั้งค่า JAVA_HOME และ JRE_HOME แล้ว (ตรวจสอบให้แน่ใจว่าชี้ไปที่ Java 1.8. *)

ตัวแปร Env

  1. ภายใน PATH ตรวจสอบให้แน่ใจ%JAVA_HOME%\binหรือC:\Program Files\Java\jdk1.8.0_251\binเพิ่ม

ป้อนคำอธิบายภาพที่นี่

  1. แหล่งที่มาของปัญหา: การติดตั้ง JDK 11 ของฉันได้เพิ่มรายการ PATH สองรายการที่ด้านบนโดยมีลำดับความสำคัญหรือแทนที่%JAVA_HOME%\binPATH ที่ชี้ไปที่ JDK 1.8 *

อย่าเพิ่มสิ่งเหล่านี้หากคุณไม่มีให้ค้นหารายการ PATH อื่นที่อาจแทนที่ %JAVA_HOME%\bin

ป้อนคำอธิบายภาพที่นี่

  1. คลิก "ย้ายลง" สำหรับรายการที่ลบล้างจนกว่าจะอยู่ด้านล่าง %JAVA_HOME%\bin

%JAVA_HOME%\bin PATH ที่ชี้ไปที่ Java 8 จะถูกจัดลำดับความสำคัญเหนือรายการ PATH อื่น ๆ ที่ชี้ไปที่ JDK 11

ป้อนคำอธิบายภาพที่นี่

  1. บันทึกและเปิดเทอร์มินัลใหม่และเรียกใช้
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)

แก้ไขแล้ว!


0
  1. ไปที่แผงควบคุมหน้าแรก
  2. การตั้งค่าระบบขั้นสูง
  3. ตัวแปรสภาพแวดล้อม
  4. เลือก JAVA_HOME
  5. แก้ไข
  6. ค่าตัวแปรสำหรับ 1.8 หนึ่ง

0

ดูเหมือนว่า Android SDK จะไม่รองรับ Java 9 ดาวน์เกรดเป็น 8 หากคุณไม่ต้องการกลับไปที่ JDK 1.8 ซึ่งสำหรับฉันแล้วมันไร้สาระ JDK 8 ใช้ได้สำหรับฉัน แต่อย่าลืมตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME ไปยังตำแหน่งของการติดตั้ง JDK ของคุณอย่างถูกต้อง



0

ฉันเพิ่งเปลี่ยนชื่อโฟลเดอร์ JDK ที่เก่ากว่าด้วย_ในกรณีที่ฉันต้องการเพิ่มเติมและใช้งานได้

C:\Program Files (x86)\Java\_jdk1.7.0_40 
C:\Program Files (x86)\Java\_jre7

บนเครื่องของฉันการกำหนดค่า java และ javac ไม่สอดคล้องกัน: java ชี้ไปที่ JDK 9 ในขณะที่ javac ชี้ไปที่ JDK 8 การตั้งค่าทั้งสองเป็น JDK 8 ช่วยแก้ปัญหาได้
ominug

0

ฉันใช้ windows และมีรุ่น jdk 1.8 และ 14 สองรุ่น ...

ประสบปัญหาเดียวกันและหลังจากการแก้ไขข้อบกพร่องบางอย่างพบวิธีแก้ปัญหา

  1. ตั้งค่า JAVA_HOME ให้ถูกต้อง
  2. เปลี่ยนค่า PATH ของตัวแปรผู้ใช้ด้วยเวอร์ชัน jdk (1.8) ใหม่
  3. เปลี่ยนค่า PATH ของตัวแปรผู้ใช้ด้วยเวอร์ชัน jdk (1.8) ใหม่

และแก้ไขได้


0

อูบุนตู / Debian ลินุกซ์รุ่นของคำตอบนี้คือการติดตั้ง OpenJDK 8 และการตั้งค่าเริ่มต้นผ่าน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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.