出现该问题是因为代码中有中文等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成功检查,不在出现该错误!