javac編譯提示錯誤須要爲 class、interface 或 enum

HelloWorld.java:1: 須要爲 class、interface 或 enum
鍩縫ublic class HelloWorld{
^
1 錯誤

java

這個錯誤出現的緣由主要是在中文操做系統中,使用一向的「javac HelloWorld.java」方式編譯UTF-8(帶BOM)編碼的.java源文件,在沒有指定編碼參數(encoding)的狀況下,默認是使用GBK編碼。當編譯器用GBK編碼來編譯UTF-8文件時,就會把UTF-8(帶BOM)編碼文件的文件頭的佔3個字節的頭信息,按照GBK中漢字佔兩個字節、英文佔1個字節的特性解碼成了「亂碼」的兩個漢字。這個源文件應該是用記事本另存存爲UTF-8編碼形成的。工具

 

 對於非GBK及其子集編碼(GB2312)的正確的源文件,編譯方式爲「javac -encoding "UTF-8" HelloWord.java」,這樣代碼錯誤的指定代碼裏就不會出現亂碼的中文。優化

 可是依然會有錯誤,提示「HelloWorld.java:1: 非法字符: \65279。  網站

 

這是由於.java對於UTF-8編碼,只識別UTF-8(不帶BOM)那種。而記事本只支持保存文件爲帶簽名的UTF-8,那有沒有辦法解決呢?編碼

 

固然是有的,那就是使用EmEditor、EditPlus、UltraEdit或Notepad++之類的工具另存爲UTF(不帶BOM)(區別於帶UTF + BOM)的編碼文件。這時候使用「javac -encoding "UTF-8" HelloWorld.java」,就沒有上述編碼問題了。操作系統

也許有人會說,「我乾脆都用GBK不就好了嗎,爲何還要用UTF-8呢?」ip

這是由於UTF-8支持世界多種語言的文字,被世界多數國家接受,是國際通用編碼,也是Java推薦使用的編碼。Java集成開發環境Eclipse中默認編碼就是UTF-8。若是使用GBK,尤爲是作網站,在非漢語國家,將沒法正常瀏覽。在信息化時代,國際交往日益頻繁;作軟件和網站,不能只着眼當前,也要爲往後維護作優化、下降維護成本。開發

相關文章
相關標籤/搜索