用記事本編寫一個帶有包結構的簡單Java程式, 注意檔案名和類名一致
啟動DOS
進入檔所在路徑, 找到我們所創建的檔。
在檔所在資料夾內執行編譯
查看所在資料夾內檔, 多出一個TestPackage.class
執行java命令
出現"找不到或無法載入主類"的提示
該如何解決?
先刪除之前生成的class檔
使用"javac -d . TestPackage.java"重新編譯
查看文件
進入testPackage檔目錄,出現我們的class檔
執行運行命令
執行成功。
"javac -d . TestPackage.java"和"javac TestPackage.java"有什麼區別?
javac
javac -d .
-d參數用於指定生成class檔的位置,.(點號)表示目前的目錄。
-d參數的作用是指定生成java包的根目錄,"-d ." 表示在目前的目錄上編譯生成java包。
如果省略了-d,則僅僅是在目前的目錄生成的class檔。大多數情況都是編譯生成java,儘量使用-d參數
那為什麼有了包結構之後就可以運行程式呢?
因為在TestPackage.java中有包聲明testPackage,當執行TestPackage.java原始檔案時java虛擬機器首先會在TestPackage.java目前的目錄尋找位元組碼檔,雖然找到了,但是因為在TestPackage.java中有包聲明,java虛擬機器緊接著去包目錄下尋找有沒有TestPackage.class位元組碼檔,沒有找到就會提示錯誤。
查看文件
進入testPackage檔目錄,出現我們的class檔
執行運行命令
執行成功。
"javac -d . TestPackage.java"和"javac TestPackage.java"有什麼區別?
javac
javac -d .
-d參數用於指定生成class檔的位置,.(點號)表示目前的目錄。
-d參數的作用是指定生成java包的根目錄,"-d ." 表示在目前的目錄上編譯生成java包。
如果省略了-d,則僅僅是在目前的目錄生成的class檔。大多數情況都是編譯生成java,儘量使用-d參數
那為什麼有了包結構之後就可以運行程式呢?
因為在TestPackage.java中有包聲明testPackage,當執行TestPackage.java原始檔案時java虛擬機器首先會在TestPackage.java目前的目錄尋找位元組碼檔,雖然找到了,但是因為在TestPackage.java中有包聲明,java虛擬機器緊接著去包目錄下尋找有沒有TestPackage.class位元組碼檔,沒有找到就會提示錯誤。