出現該問題是因為代碼中有中文等checkStyle無法識別的編碼,並且導致無法正確檢查其他錯誤;
引用網上的一段解決方法(尼瑪整個網上都是這一個版本):
Got an exception - Unexpected character 0xfffd in identifier
這是因為CheckStyle不能識別制定的編碼格式。
解決方法:設定TreeWalker的charset屬性。不過不知道為什么CheckStyle的Eclipse插件不支持這個屬性的設定。在Eclipse中可以將CheclStyle導出,然后修改導出的文件:
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<property name="charset" value="UTF-8"/>
<property name="tabWidth" value="4"/>
如果是UTF-8的話,就添加加粗的那條語句,就可以了。
這是因為CheckStyle不能識別制定的編碼格式。
解決方法:設定TreeWalker的charset屬性。不過不知道為什么CheckStyle的Eclipse插件不支持這個屬性的設定。在Eclipse中可以將CheclStyle導出,然后修改導出的文件:
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<property name="charset" value="UTF-8"/>
<property name="tabWidth" value="4"/>
如果是UTF-8的話,就添加加粗的那條語句,就可以了。
但事實上,當我添加了這個屬性並重載checkStyle配置文件,eclipse會彈框表示TreeWalker不支持charset這個屬性!因此網上這個方法至少在我這是行不通
但是在我的機器上以前沒加這句時,也可以用checkStyle檢查含中文的java文件,我想可能跟我環境變化有關系!
右單機我的java文件的properties屬性,編碼是UTF-8的,沒問題:

但是右單擊查看包的properties,是繼承自容器的的默認GBK的編碼格式:

修改包編碼格式,-->windows-->preference-->general-->workspace 郵編encoding選擇UTF-8
再使用checkStyle成功檢查,不在出現該錯誤!
