PATH,CLASSPATH都配置好情況下,javac編譯java文件後,生成class文件,再用java去運行,出現錯誤:找不到或無法加載主類。

//這個問題原因有以下幾種,但是和環境變量並沒有太大的關係
//能夠執行java 和 javac 就證明你的環境變量已經配置好了,其實 classpath 可以不配置
//假如有如下文件:H:\code\Hello.java
public class Hello{
    public static void main(String[]args){
        System.out.println("Hello");
    }
}
//正確編譯命令: javac Hello.java
//正確運行命令: java Hello
 
錯誤1:H:\code>java Hello.java
錯誤: 找不到或無法加載主類 Hello.java
原因:命令錯誤
 
錯誤2:H:\code>java Hello.class
錯誤: 找不到或無法加載主類 Hello.class
原因:命令錯誤
 
錯誤3:java 源文件帶有包名,往往容易出錯
如:H:\code\Hello2.java
package com.example;
 
public class Hello2{
    public static void main(String[]args){
        System.out.println("Hello2");
    }
}
這代碼看上去沒什麼問題,執行:
H:\code>javac Hello2.java
H:\code>java Hello2
錯誤: 找不到或無法加載主類 Hello2
 
解決辦法:
+.刪除包名  或者 
+.在code 下創建一個與包名相同的文件結構(H:\code\com\example\Hello2.java)
  編譯:H:\code>javac com/example/Hello2.java
  運行:H:\code>java com.example.Hello2



鑑於該問題是個典型的問題,理解該問題,有助於理解java運行時如何通過package、claass的路徑找到main函數。

來源:
http://zhidao.baidu.com/question/1690731339477414628.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章