Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไข: Could Not Create the Java Virtual Machine

ผู้ใช้บางรายเจอข้อผิดพลาด Could Not Create The Java Virtual Machine เมื่อพยายามเปิดแอปพลิเคชันที่ใช้ Java ปัญหานี้รายงานว่าพบกับ Minecraft และแอปพลิเคชันอื่นๆ ที่สร้างรอบ Java

แก้ไข: Could Not Create the Java Virtual Machine

สาเหตุของข้อผิดพลาด Could Not Create The Java Virtual Machine

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

  • Java ถูกเรียกใช้ด้วย arguments หรือ options ที่ผิด — อาจเกิดหากคุณรันแอปพลิเคชันที่สร้างเอง หรือพยายามเปิดแอปพลิเคชันโอเพนซอร์สที่รู้จักว่าก่อให้เกิดความไม่เสถียรของระบบ
  • Java global maximum heap memory ไม่พอ — หนึ่งในสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดนี้คือ หากคุณพยายามเริ่มแอปพลิเคชัน Java ด้วยขนาด maximum heap memory ใหญ่กว่าที่ตั้งเป็น System Variable
  • Java executable และ/หรือแอปพลิเคชันต้องการสิทธิ์ผู้ดูแลระบบ — อาจเกิดกับแอปพลิเคชันที่ต้องการการเข้าถึง admin เพื่อทำงานอย่างถูกต้อง

หากคุณกำลังหาวิธีแก้ไข Could Not Create The Java Virtual Machine ข้อผิดพลาด บทความนี้จะให้กลยุทธ์แก้ไขปัญหาที่ได้รับการตรวจสอบแล้วหลายอย่าง ด้านล่างคือชุดวิธีการที่ผู้ใช้คนอื่นในสถานการณ์เดียวกันใช้แก้ไขได้สำเร็จ

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้ปฏิบัติตามวิธีการด้านล่างตามลำดับที่นำเสนอ จนกว่าจะพบวิธีที่มีประสิทธิภาพแก้ไขข้อผิดพลาดสำหรับสถานการณ์เฉพาะของคุณ

วิธีที่ 1: เพิ่ม _JAVA_OPTIONS ใน System Variables

ผู้ใช้ที่ได้รับผลกระทบส่วนใหญ่แก้ไขปัญหาได้โดยการสร้าง System Variable สำหรับ Java ชื่อ _JAVA_OPTIONS และตั้งค่าเป็น Xmx512M สิ่งนี้ตั้งค่าขนาด global maximum heap memory สำหรับ Java

สิ่งนี้จะแก้ไขข้อความข้อผิดพลาดที่เกิดเพราะ maximum heap memory size ของแอปพลิเคชัน Java ที่เริ่มต้น ใหญ่กว่าที่ตั้งเป็น System Variable ผู้ใช้หลายรายที่เจอปัญหาเดียวกันรายงานว่าปัญหาแก้ไขโดยสมบูรณ์หลังทำขั้นตอนด้านล่าง

นี่คือสิ่งที่คุณต้องทำ เพื่อเพิ่ม entry _JAVA_OPTIONS ใน System Variables เพื่อเพิ่มขนาด global maximum heap memory:

  1. กด Windows + R เปิดกล่อง Run พิมพ์ "sysdm.cpl" กด Enter เปิดหน้าจอ System Properties
  2. ในหน้าจอ System Properties ไปที่แท็บ Advanced คลิก Environment Variables.
  3. ในหน้าต่าง Environment Variables คลิก New (ภายใต้ System Variables)
  4. ในหน้าต่าง New System Variable ตั้ง Variable name เป็น _JAVA_OPTIONS และ Variable value เป็น –Xmx512M คลิก Ok บันทึก
  5. ปิดหน้าต่างที่เปิดไว้ก่อนหน้า และรีสตาร์ทเครื่องบังคับการเปลี่ยนแปลง
  6. ที่การบูตครั้งต่อไป เปิดแอปพลิเคชันที่เคยแสดง Could Not Create the Java Virtual Machine ข้อผิดพลาด ดูว่ามันทำงานปกติแล้วหรือไม่
แก้ไข: Could Not Create the Java Virtual Machine

หากยังเห็นข้อความข้อผิดพลาดเดียวกันตอนเริ่มแอปพลิเคชัน ลองเพิ่ม Java Bin path ซึ่งอาจคล้าย “%\USER PATH\Java\jdk1.6.0_39\bin” เข้าไปใน environment variable ตามวิธีด้านบน และดูว่าทำงานหรือไม่

วิธีที่ 2: เปิด java.exe ด้วยสิทธิ์ผู้ดูแลระบบ (admin rights)

ผู้ใช้หลายรายที่เพล้ากับปัญหาเดียวกันแก้ไขได้หลังบังคับให้ Java executable หลัก (java.exe) เปิดด้วยสิทธิ์ผู้ดูแลระบบ

ผู้ใช้บางรายรายงานว่าแก้ไขได้หลังใช้วิธีนี้กับ java executable หลัก และ executable ของแอปพลิเคชันที่แสดงข้อผิดพลาด ทั้งคู่

นี่คือคำแนะนำอย่างรวดเร็ว:

  1. เปิด File Explorer ไปที่ตำแหน่งการติดตั้ง Java ของคุณ เราต้องไปที่ตำแหน่งของ Java executable หลัก (java.exe) โดยค่าเริ่มต้น คุณควรหาได้ที่ Program Files/Java/*JRE build version*/bin. ตำแหน่งที่แน่นอนจะแตกต่างไปตาม Java Runtime Environment ที่คุณใช้แก้ไข: Could Not Create the Java Virtual Machine

    หมายเหตุ: หากคุณติดตั้ง Java ในตำแหน่งที่กำหนดเอง ให้ไปที่ตำแหน่งที่กำหนดเองแทน

  2. คลิกขวา java.exe เลือก Properties ไปที่แท็บ Compatibility ติ๊กถูกกล่องที่เกี่ยวกับ Run this program as an administrator (ภายใต้ Settings) คลิก Apply บันทึกแก้ไข: Could Not Create the Java Virtual Machine
  3. คลิกขวาที่ executable ของแอปพลิเคชัน (ตัวที่ก่อให้เกิดข้อผิดพลาด) และทำขั้นตอนเดียวกัน: Compatibility > Run this program as an administrator > Apply.
  4. รันแอปพลิเคชัน และดูว่าข้อความข้อผิดพลาดแก้ไขแล้วหรือไม่

วิธีที่ 3: ติดตั้ง Java ใหม่ (Reinstalling Java)

ในบางกรณี ข้อผิดพลาดถูกกระตุ้นเพราะ Java อาจติดตั้งไม่ถูกต้อง หรือการติดตั้งอาจเสียหายตามเวลา ดังนั้นในขั้นตอนนี้ เราจะติดตั้ง Java ใหม่หลังถอนการติดตั้งออกอย่างสมบูรณ์ สำหรับนั้น:

  1. กด Windows + R เปิด Run prompt พิมพ์ “Appwiz.cpl”แก้ไข: Could Not Create the Java Virtual Machine
  2. กด “Enter” หน้าจอ Programs and Features จะเปิด
  3. ที่หน้าจอ Programs and Features เลื่อนดูรายการแอปพลิเคชันที่ติดตั้ง จนเจอ Javaแก้ไข: Could Not Create the Java Virtual Machine
  4. คลิกขวา เลือก “Uninstall” ลบออกจากระบบอย่างสมบูรณ์
  5. ก่อนอื่น ลบการติดตั้ง Java หลัก แล้วคุณควรลบการติดตั้ง Java อื่นๆ ทั้งหมด เช่น updates และรุ่นอื่นๆ
  6. หลังถอนการติดตั้งทั้งหมด รีสตาร์ทคอมพิวเตอร์
  7. หลังบูตขึ้น ไปที่ลิงก์นี้ และดาวน์โหลด JRE รุ่นล่าสุด
  8. ตรวจสอบว่าปัญหายังคงอยู่หรือไม่
  9. หากข้อผิดพลาดยังคงอยู่ ดาวน์โหลดและติดตั้ง JDK รุ่นล่าสุดจากที่นี่
    หมายเหตุ: หากคุณใช้ JDK อยู่แล้ว ลองเปลี่ยนรุ่น หรือถอนการติดตั้ง JRE ที่ติดตั้งไปพร้อมกับมัน
  10. ตรวจสอบว่าปัญหายังมีอยู่หรือไม่

วิธีที่ 4: แก้ไขข้อผิดพลาดกับโค้ด (Fixing Errors With Code)

มีเหตุผลหลายอย่างด้านหลังข้อผิดพลาดนี้ และบางอย่างรวมถึง หากคุณมีข้อผิดพลาดเฉพาะกับโค้ดของคุณ เราจะเน้นบางอย่างด้านล่าง

  • ลบ Hyphen: ผู้ใช้บางรายบันทึกว่าข้อผิดพลาดแก้ไขได้โดยการเปลี่ยน double hyphen “–” เป็น single hyphen “-” ในโค้ดของพวกเขา ตัวอย่าง:
    เปลี่ยนโค้ด
    “sony@sony-VPCEH25EN:~$ java –version
    Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
    Unrecognized option: –version
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.”
    เป็น
    “sony@sony-VPCEH25EN:~$ java -version
    Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
    Unrecognized option: –version
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.”
  • ลองลบบรรทัดต่อไปนี้ออกจาก argument ของคุณ
    -Djava.endorsed.dirs=”C:\Program Files\Apache Software Foundation\Tomcat 8.5\endorsed”
  • เปิดไฟล์ eclipse.ini และแน่ใจว่าคุณเพิ่ม entry “-vm” เหนือ vm args มิฉะนั้น JVM V6 จะถูกเลือกใน env vars
  • หากใช้ Ubuntu คุณควรทราบว่า Java 8 คือรุ่นเดียวที่รองรับ ดังนั้นใช้วิธีที่ 3 ถอนการติดตั้ง Java และติดตั้งรุ่นก่อนหน้า

วิธีที่ 5: แก้ไขไฟล์ Eclipse.ini (Editing Eclipse.ini File)

เรายังสามารถปรับแต่งภายในไฟล์ Eclipes.ini เพื่อแก้ไขปัญหานี้ได้ อาจมีปัญหาบางอย่างกับการกำหนดค่าของมันที่ต้องแก้ไข ดังนั้นเราแบ่งเป็นปัญหาแยกต่างหาก ปฏิบัติตามตัวที่เหมาะกับสถานการณ์ของคุณมากที่สุด

ลดการใช้หน่วยความจำ (Lowering Memory Use)

  1. เปิดไฟล์ Eclipse.ini ภายในโฟลเดอร์ Eclipse ด้วย notepad
  2. หาบรรทัดคล้าย “-Xmx256m” (อาจเป็น -Xmx1024m หรือ -Xmx 512m)
  3. เปลี่ยนค่าเริ่มต้นเป็นตัวเลขที่เหมาะสมกว่านั้น ขึ้นอยู่กับ RAM ที่ติดตั้งบนคอมพิวเตอร์ และเพิ่มหมายเลขเวอร์ชันด้วย ตัวอย่าง:
    -Xmx512m -Dosgi.requiredJavaVersion=1.6 OR -Xmx512m -Dosgi.requiredJavaVersion=1.7 OR -Xmx512m -Dosgi.requiredJavaVersion=1.8
  4. ลองลบค่า “256m” จากบรรทัด “-launcher.XXMaxPermSize”
  5. ตรวจสอบว่าปัญหายังคงอยู่หรือไม่

ปรับแต่งต่างๆ (Tinkering Around)

  1. ลองลบบรรทัดต่อไปนี้จากไฟล์
    -vm P:\Programs\jdk1.6\bin
  2. เปลี่ยนบรรทัดต่อไปนี้
    set -Dosgi.requiredJavaVersion=1.5 TO set -Dosgi.requiredJavaVersion=1.6
  3. ลองเพิ่มบรรทัดต่อไปนี้เหนือบรรทัด “-vmargs!”
    -vm C:\Program Files (x86)\Java\jre6\bin\javaw.exe
  4. ชี้ไปที่ JVM.dll ด้วยบรรทัดต่อไปนี้
    -vm C:\Program Files\Java\jre7\bin\client\jvm.dll
  5. เปิดไฟล์ Eclipse และแทนที่ “-vmargs” ด้วย path ของ javaw.exe ตัวอย่าง:
    -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813 -product com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 256M -showsplash com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile **-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”** -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx768m -Declipse.buildId=v21.1.0-569685
  6. ลองเพิ่มบรรทัดต่อไปนี้ท้ายสุด และดูว่าทำงานหรือไม่
    -vmargs -Xms40m -Xmx512m -XX:MaxPermSize=256m
  7. เพิ่มเติม ลองลบบรรทัดต่อไปนี้จาก eclipse.ini และดูว่าทำงานหรือไม่
    -XX:+UseStringDeduplication -XX:+UseG1GC
  8. คุณยังลองลบไฟล์ eclipse.ini หากปัญหายังคงอยู่ เพราะรายงานว่ามีผู้ใช้แก้ไขได้ แต่จำไว้ backup ก่อนเผื่อต้องการ นอกจากนี้ ลองปิดแอปพลิเคชันที่ใช้ทรัพยากรมากก่อนเริ่ม Java เพื่อให้แน่ใจว่ามีทรัพยากรพอ

ตรวจสอบความเสียหายของ JDK (Checking for JDK Corruption)

  1. กด “Windows” + “R” เปิด Run prompt พิมพ์ “cmd”
  2. พิมพ์คำสั่งต่อไปนี้ ตรวจสอบว่ามันให้ข้อผิดพลาดหรือไม่
    c:\> java -version
  3. หากให้ข้อผิดพลาด ติดตั้ง JDK ใหม่อย่างสมบูรณ์