เมื่อคุณเขียนโปรแกรม Java คุณต้องคอมไพล์โดยใช้คำสั่ง javac นี่จะแสดงให้คุณเห็นข้อผิดพลาดของเวลาในการคอมไพล์ที่เกิดขึ้น (ถ้ามี)
เมื่อคุณแก้ไขปัญหาและคอมไพล์ความสำเร็จของโปรแกรมอย่างสมบูรณ์แล้ว ไฟล์เรียกทำงานที่มีชื่อเดียวกับชื่อคลาสของคุณจะถูกสร้างขึ้นในโฟลเดอร์ปัจจุบันของคุณด้วย .class นามสกุล.
จากนั้นคุณต้องดำเนินการโดยใช้คำสั่ง java เป็น −
java class_name
ขณะดำเนินการ เมื่อ JVM ไม่พบไฟล์ .class ที่มีชื่อที่ระบุ จะเกิดข้อผิดพลาดขณะทำงานโดยแจ้งว่า "ไม่พบหรือโหลดคลาสหลัก" เป็นข้อผิดพลาด -
D:\sample>java Example Error: Could not find or load main class Example Caused by: java.lang.ClassNotFoundException: Example
วิธีแก้ปัญหา
เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ คุณต้องระบุชื่อที่แน่นอน (รวมถึงแพ็คเกจ) ของไฟล์ .class (เพียงชื่อ) ซึ่งอยู่ในไดเร็กทอรีปัจจุบัน
ต่อไปนี้เป็นสถานการณ์ที่อาจเกิดข้อผิดพลาดนี้ได้ -
ชื่อคลาสผิด − คุณอาจระบุชื่อคลาสผิด
class Example { public static void main(String args[]){ System.out.println("This is an example class"); } }
ผิดพลาด
D:\>javac Example.java D:\>java Exmple Error: Could not find or load main class Exmple Caused by: java.lang.ClassNotFoundException: Exmple
วิธีแก้ปัญหา − ในการนี้ ชื่อคลาสสะกดผิด เราต้องแก้ไข
D:\>javac Example.java D:\>java Example This is an example class
ผิดกรณี − คุณต้องระบุชื่อคลาสที่มีตัวพิมพ์เดียวกัน Example.java ต่างจาก example.java
class Example { public static void main(String args[]){ System.out.println("This is an example class"); } }
ผิดพลาด
D:\>java EXAMPLE Error: Could not find or load main class EXAMPLE Caused by: java.lang.NoClassDefFoundError: Example (wrong name: EXAMPLE)
วิธีแก้ปัญหา − กรณีนี้ชื่อคลาสผิดตัว ควรตกแต่ง
D:\>javac Example.java D:\>java Example This is an example class
แพ็กเกจผิด − คุณอาจสร้างไฟล์ .class ในแพ็คเกจและพยายามดำเนินการโดยไม่มีชื่อแพ็คเกจหรือชื่อแพ็คเกจไม่ถูกต้อง
package sample; class Example { public static void main(String args[]){ System.out.println("This is an example class"); } }
ผิดพลาด
D:\>javac -d . Example.java D:\>java samp.Example Error: Could not find or load main class samp.Example Caused by: java.lang.ClassNotFoundException: samp.Example
วิธีแก้ปัญหา − ในสถานการณ์สมมตินี้ เราได้กล่าวถึงชื่อของแพ็คเกจที่ไม่ถูกต้อง ในขณะที่ดำเนินการ เราจำเป็นต้องระบุชื่อแพ็คเกจที่ถูกต้องซึ่งมีไฟล์ .class อยู่เป็น −
D:\>javac -d . Example.java D:\>java sample.Example This is an example class
การรวมส่วนขยาย .class − ในขณะที่เรียกใช้ไฟล์ ไม่จำเป็นต้องรวมนามสกุล .class ไว้ในโปรแกรมของคุณ คุณเพียงแค่ต้องระบุชื่อไฟล์คลาส
ผิดพลาด
D:\sample>java Example.class Error: Could not find or load main class Example.class Caused by: java.lang.ClassNotFoundException: Example.class
วิธีแก้ปัญหา − ส่วนขยาย .class ไม่จำเป็นในขณะที่รันโปรแกรม
D:\sample>java Example This is an example class