一、背景
最近在使用記事本編寫帶有包名并且有繼承關系的java代碼并運作時發現出現了很多錯誤,經過努力一一被解決,今天我們來看一下會遇見哪些問題,并給出解決辦法。
二、測試過程
1.父類代碼
2.子類代碼
1)第一次直接在基類和子類所在的目錄運作javac Zi.java指令,出現以下錯誤:
解決辦法為:我們需要使用javac *.java指令來進行運作,因為此時存在繼承關系,編譯子類的同時也需要先編譯父類
2)運作java Zi指令,出現以下錯誤
這是什麼原因呢?因為我們在編寫程式時用到了包名,是以運作類檔案時,需要完整名稱,指令修改為:java com.hafiz.zhang.Zi
我們會發現出現以下錯誤
這是因為我們不存在子檔案夾com/hafiz/zhang并且在該子檔案夾下不存在Zi.class檔案,故找不到主類。
解決辦法是:使用javac -d . *.java("-d ."代表在目前目錄下建立包路徑)指令來進行編譯,這樣javac指令會自動幫我們建立包名所指定的檔案夾,并在該檔案夾下建立Zi.class檔案。
此時我們還發現,已經自動生成子檔案夾com/hafiz/zhang并且在該子檔案夾下存在Zi.class檔案了。
這時我們再運作:java com.hafiz.zhang.Zi指令,程式執行成功!
由此我們得出了在CMD視窗中使用javac和java指令進行編譯和執行帶有包名的具有繼承關系的類的方式:
1.使用javac -d . *.java進行編譯
2.使用java com.hafiz.Zi(帶包名的類全名)指令進行運作!