如何在Java中解決“找不到或無法載入主類包”問題?
編寫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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP