天天看點

javac編譯提示編碼GBK的不可映射字元

使用指令行javac指令編譯java檔案,

提示錯誤:編碼gbk的不可映射字元。

javac編譯提示編碼GBK的不可映射字元

在編譯的時候,如果我們沒有用-encoding參數指定我們的java源程式的編碼格式,則javac.exe會獲得我們作業系統預設采用的編碼格式。

jdk根據作業系統的file.encoding參數(它儲存的就是作業系統預設的編碼格式,如win2k,它的值為gbk),把源程式從預設編碼格式轉化為jdk内部預設的unicode格式放入記憶體中。然後把轉換後的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

當然,更好的辦法是使用ide輸出,比如eclipse expert jar檔案。

如何将一個目錄下的子目錄和檔案打包成war包?

war檔案實際上和jar檔案一樣,隻是改變了名稱(字尾名)。

如:将d:\myweb 目錄下的頁面程式打包成myweb.war

打開指令行視窗,進入d:myweb 目錄,

執行:jar -cvf myweb.war .  最後的.代表目前目錄。

當然,這隻是一種壓縮格式,生成的war檔案不能在伺服器中部署,需要部署,可以使用 maven 或者 ide中 expert war檔案。

将非eclipse項目導入eclipse中?

非eclipse項目(沒有相應的.project檔案),在eclipse中執行以下步驟:

打開file-new-java project,然後use default location中改為要導入的項目的檔案的位址。

繼續閱讀