ผู้ใช้บางรายเจอข้อผิดพลาด Could Not Create The Java Virtual Machine เมื่อพยายามเปิดแอปพลิเคชันที่ใช้ Java ปัญหานี้รายงานว่าพบกับ Minecraft และแอปพลิเคชันอื่นๆ ที่สร้างรอบ Java
สาเหตุของข้อผิดพลาด 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:
- กด Windows + R เปิดกล่อง Run พิมพ์ "sysdm.cpl" กด Enter เปิดหน้าจอ System Properties
- ในหน้าจอ System Properties ไปที่แท็บ Advanced คลิก Environment Variables.
- ในหน้าต่าง Environment Variables คลิก New (ภายใต้ System Variables)
- ในหน้าต่าง New System Variable ตั้ง Variable name เป็น _JAVA_OPTIONS และ Variable value เป็น –Xmx512M คลิก Ok บันทึก
- ปิดหน้าต่างที่เปิดไว้ก่อนหน้า และรีสตาร์ทเครื่องบังคับการเปลี่ยนแปลง
- ที่การบูตครั้งต่อไป เปิดแอปพลิเคชันที่เคยแสดง 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 ของแอปพลิเคชันที่แสดงข้อผิดพลาด ทั้งคู่
นี่คือคำแนะนำอย่างรวดเร็ว:
- เปิด File Explorer ไปที่ตำแหน่งการติดตั้ง Java ของคุณ เราต้องไปที่ตำแหน่งของ Java executable หลัก (java.exe) โดยค่าเริ่มต้น คุณควรหาได้ที่ Program Files/Java/*JRE build version*/bin. ตำแหน่งที่แน่นอนจะแตกต่างไปตาม Java Runtime Environment ที่คุณใช้

หมายเหตุ: หากคุณติดตั้ง Java ในตำแหน่งที่กำหนดเอง ให้ไปที่ตำแหน่งที่กำหนดเองแทน
- คลิกขวา java.exe เลือก Properties ไปที่แท็บ Compatibility ติ๊กถูกกล่องที่เกี่ยวกับ Run this program as an administrator (ภายใต้ Settings) คลิก Apply บันทึก

- คลิกขวาที่ executable ของแอปพลิเคชัน (ตัวที่ก่อให้เกิดข้อผิดพลาด) และทำขั้นตอนเดียวกัน: Compatibility > Run this program as an administrator > Apply.
- รันแอปพลิเคชัน และดูว่าข้อความข้อผิดพลาดแก้ไขแล้วหรือไม่
วิธีที่ 3: ติดตั้ง Java ใหม่ (Reinstalling Java)
ในบางกรณี ข้อผิดพลาดถูกกระตุ้นเพราะ Java อาจติดตั้งไม่ถูกต้อง หรือการติดตั้งอาจเสียหายตามเวลา ดังนั้นในขั้นตอนนี้ เราจะติดตั้ง Java ใหม่หลังถอนการติดตั้งออกอย่างสมบูรณ์ สำหรับนั้น:
- กด Windows + R เปิด Run prompt พิมพ์ “Appwiz.cpl”

- กด “Enter” หน้าจอ Programs and Features จะเปิด
- ที่หน้าจอ Programs and Features เลื่อนดูรายการแอปพลิเคชันที่ติดตั้ง จนเจอ Java

- คลิกขวา เลือก “Uninstall” ลบออกจากระบบอย่างสมบูรณ์
- ก่อนอื่น ลบการติดตั้ง Java หลัก แล้วคุณควรลบการติดตั้ง Java อื่นๆ ทั้งหมด เช่น updates และรุ่นอื่นๆ
- หลังถอนการติดตั้งทั้งหมด รีสตาร์ทคอมพิวเตอร์
- หลังบูตขึ้น ไปที่ลิงก์นี้ และดาวน์โหลด JRE รุ่นล่าสุด
- ตรวจสอบว่าปัญหายังคงอยู่หรือไม่
- หากข้อผิดพลาดยังคงอยู่ ดาวน์โหลดและติดตั้ง JDK รุ่นล่าสุดจากที่นี่
หมายเหตุ: หากคุณใช้ JDK อยู่แล้ว ลองเปลี่ยนรุ่น หรือถอนการติดตั้ง JRE ที่ติดตั้งไปพร้อมกับมัน - ตรวจสอบว่าปัญหายังมีอยู่หรือไม่
วิธีที่ 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)
- เปิดไฟล์ Eclipse.ini ภายในโฟลเดอร์ Eclipse ด้วย notepad
- หาบรรทัดคล้าย “-Xmx256m” (อาจเป็น -Xmx1024m หรือ -Xmx 512m)
- เปลี่ยนค่าเริ่มต้นเป็นตัวเลขที่เหมาะสมกว่านั้น ขึ้นอยู่กับ RAM ที่ติดตั้งบนคอมพิวเตอร์ และเพิ่มหมายเลขเวอร์ชันด้วย ตัวอย่าง:
-Xmx512m -Dosgi.requiredJavaVersion=1.6 OR -Xmx512m -Dosgi.requiredJavaVersion=1.7 OR -Xmx512m -Dosgi.requiredJavaVersion=1.8
- ลองลบค่า “256m” จากบรรทัด “-launcher.XXMaxPermSize”
- ตรวจสอบว่าปัญหายังคงอยู่หรือไม่
ปรับแต่งต่างๆ (Tinkering Around)
- ลองลบบรรทัดต่อไปนี้จากไฟล์
-vm P:\Programs\jdk1.6\bin
- เปลี่ยนบรรทัดต่อไปนี้
set -Dosgi.requiredJavaVersion=1.5 TO set -Dosgi.requiredJavaVersion=1.6
- ลองเพิ่มบรรทัดต่อไปนี้เหนือบรรทัด “-vmargs!”
-vm C:\Program Files (x86)\Java\jre6\bin\javaw.exe
- ชี้ไปที่ JVM.dll ด้วยบรรทัดต่อไปนี้
-vm C:\Program Files\Java\jre7\bin\client\jvm.dll
- เปิดไฟล์ 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
- ลองเพิ่มบรรทัดต่อไปนี้ท้ายสุด และดูว่าทำงานหรือไม่
-vmargs -Xms40m -Xmx512m -XX:MaxPermSize=256m
- เพิ่มเติม ลองลบบรรทัดต่อไปนี้จาก eclipse.ini และดูว่าทำงานหรือไม่
-XX:+UseStringDeduplication -XX:+UseG1GC
- คุณยังลองลบไฟล์ eclipse.ini หากปัญหายังคงอยู่ เพราะรายงานว่ามีผู้ใช้แก้ไขได้ แต่จำไว้ backup ก่อนเผื่อต้องการ นอกจากนี้ ลองปิดแอปพลิเคชันที่ใช้ทรัพยากรมากก่อนเริ่ม Java เพื่อให้แน่ใจว่ามีทรัพยากรพอ
ตรวจสอบความเสียหายของ JDK (Checking for JDK Corruption)
- กด “Windows” + “R” เปิด Run prompt พิมพ์ “cmd”
- พิมพ์คำสั่งต่อไปนี้ ตรวจสอบว่ามันให้ข้อผิดพลาดหรือไม่
c:\> java -version
- หากให้ข้อผิดพลาด ติดตั้ง JDK ใหม่อย่างสมบูรณ์