1. 程式人生 > >cmd中編譯和執行java程式+錯誤:找不到或無法載入主類

cmd中編譯和執行java程式+錯誤:找不到或無法載入主類

1.cmd中編譯和執行java程式

(1)Set path to JDK bin directory:set path=D:\Java\jdk1.8.0_121\bin ; (2)Set classpath to include the current directory: set classpath=. ; (3)Compile:javac StringClass.java ; (4)Run:java StringClass。 2.在編譯時javac StringClass.java出錯:編碼GBK的不可對映字元 原因:由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding引數指定我們的Java源程式的編碼格式,則javac.exe首先獲得我們作業系統預設採用的編碼格式,也即在編譯java程式時,若我們不指定源程式檔案的編碼格式,JDK首先獲得作業系統的file.encoding引數(它儲存的就是作業系統預設的編碼格式,如WIN2k,它的值為GBK),然後JDK就把我們的java源程式從file.encoding編碼格式轉化為JAVA內部預設的UNICODE格式放入記憶體中。然後,javac把轉換後的unicode格式的檔案進行編譯成.class類檔案,此時.class檔案是UNICODE編碼的,它暫放在記憶體中,緊接著,JDK將此以UNICODE編碼的編譯後的class檔案儲存到我們的作業系統中形成我們見到的.class檔案。對我們來說,我們最終獲得的.class檔案是內容以UNICODE編碼格式儲存的類檔案,它內部包含我們源程式中的中文字串,只不過此時它己經由file.encoding格式轉化為UNICODE格式了。當我們不加設定就編譯時,相當於使用了引數:javac -encoding gbk XX.java,當然就會出現不相容的情況。
解決方法:javac -encoding UTF-8 StringClass.java
3.在執行時出錯:找不到或無法載入主類 原因:由於用了package導致cmd下找不到class檔案產生的錯誤,源程式中使用了:
package bupt.edu.cn.shgao.example04;
所以切換到src目錄下,執行語句 : java  bupt.edu.cn.shgao.example04.StringClass即可正常執行程式。