首頁 > 網際網路

DOS命令執行java程式 解決中文編碼問題 GBK

2019-12-10 03:21:22

       由於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,當然就會出現不相容的情況。

解決辦法是:應該使用-encoding引數指明編碼方式:javac -encoding UTF-8 XX.java下面是詳細的操作流程!

1

執行控制台,程式->執行,輸入CMD,點選確定進入DOS作業系統 快捷鍵windows鍵+R鍵


2

編寫需要執行的java程式碼!

/**

 * @author java

 * @version 建立時間:2014-11-7 下午2:31:53

 * 類說明

 */

public class helloword {

public static void main(String[] args)  {

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

     System.out.println("hello中文字元,,,中文字元 word");

}

}


3

切換執行目錄到您存放java程式碼的目錄!使用命令 cd 切換


4

常規執行命令 javac helloword.java,出現如下錯誤!


5

解決錯誤提示:編碼 GBK 的不可對映字元,

使用命令:javac -encoding utf-8 helloword.java,編譯成功


6

成功編譯後,在tmp目錄下能看到helloword.java檔案編譯後的.class位元組碼檔案,如下


7

使用命令【 java helloword 】,執行java程式


1

控制台輸入命令javac,,檢視更多用法詳解


2

控制台輸入命令java,,檢視更多用法詳解



IT145.com E-mail:sddin#qq.com