Java 中“Could not found or load main class”錯誤的原因是什麼?
編寫 Java 程式/類時,首先需要使用 javac 命令進行編譯,如下所示:
javac [name of the class].java
如果程式編譯沒有錯誤,則會建立一個名為 .class 的檔案(位元組碼),然後需要使用 java 命令(JVM)執行它,如下所示:
java [class name]
示例
假設我們建立了一個簡單的 Calculator 類,它在名為 Calculator.java 的檔案中添加了兩個或三個數字,路徑為 D:\sample,如下所示:
public class Calculator {
int addition(int a , int b){
int result = a+b;
return result;
}
int addition(int a , int b, int c){
int result = a+b+c;
return result;
}
public static void main(String args[]){
Calculator obj = new Calculator();
System.out.println(obj.addition(12, 13));
System.out.println(obj.addition(12, 13, 15));
}
}編譯
首先,我們應該使用 javac 命令編譯 Calculator.java,如下所示:
D:\sample>javac Calculator.java
如果此程式在沒有編譯錯誤的情況下執行,則將在當前資料夾中生成一個名為 Calculator.class 的 .class 檔案,如下所示:

執行
然後,我們可以使用 java 命令(JVM)執行生成的位元組碼,如下所示:
java Calculator
輸出
25 40
“Could not found or load main class” 錯誤
在執行期間,當 JVM 未找到指定名稱的 .class 檔案時,會發生執行時錯誤,提示“Could not found or load main class” 錯誤,如下所示:
D:\sample>java Calculator Error: Could not find or load main class Calculator Caused by: java.lang.ClassNotFoundException: Calculator
為了避免此錯誤,您需要指定位於當前目錄中的 .class 檔案的絕對(包括包)名稱(僅名稱)。
如果您在執行程式時看到此錯誤,則:
- 類名錯誤 - 您可能指定了錯誤的類名。
- 大小寫錯誤 - 您需要使用相同的案例指定類名,例如 Example.java 與 example.java 不同。
- 包錯誤 - 您可能在包中建立了 .class 檔案,並嘗試在沒有包名或使用錯誤的包名的情況下執行。
示例
package sample.example;
class Calculator {
int addition(int a , int b){
int result = a+b;
return result;
}
public static void main(String args[]){
Calculator obj = new Calculator();
System.out.println(obj.addition(12, 13));
}
}在這裡,我們在程式中指定了一個包名並將其編譯,如下所示:
D:\sample>javac -d . Calculator.java
在執行時,我們需要指定 .class 檔案所在的正確包名,如下所示:
D:\sample>java sample.example.Calculator 25
- 包含 .class 副檔名 - 在執行檔案時,無需在程式中包含 .class 副檔名,只需指定類檔案的名稱即可。
D:\sample>java Calculator.class Error: Could not find or load main class Calculator.class Caused by: java.lang.ClassNotFoundException: Calculator.class
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP