假設在C:\Java\code\目錄下建立了如下 Test.java文件:
1 package code; 2
3 public class Test { 4
5 public static void main(String [] args){ 6 System.out.println("Hello Java"); 7 } 8 }
啟動cmd命令行窗口,切換當前路徑至 C:\Java\code\,運行命令:javac Test.java。通常會正常編譯,在當前目錄下生成 Test.class 文件。
但是當接着運行命令: java Test 時,通常會出現 “錯誤: 找不到或無法加載主類 Test” 的錯誤提示。這是什么原因呢?
原因在於 “package code;” 命令。該命令指明了類Test是在code這個package中的,因此運行 "java Test" 時,應當先退回到上一級目錄,本例即 C:\Java\目錄,然后再運行 "java code.Test" 命令,這樣就能正確運行代碼了。也可以在cmd啟動的時候就直接將當前目錄定位到 C:\Java\ 目錄,然后編譯命令用 "javac code\Test.java" ,編譯完后運行執行命令 "java code.Test" ,這樣就可以了。
另一種解決方法是 去掉Test.java 文件中的 package code; 這一行,然后直接在 C:\Java\code\ 目錄下運行 “javac Test.java” 和 "java Test" 命令,這樣就不會找不到主類了。