问题 Eclipse中的Checkstyle错误 - 无法实例化Tab字符


在尝试使用checkstyle构建项目时,今天遇到此错误。这适用于我办公室的其他人,但我不想再重新安装Eclipse。知道这个错误究竟意味着什么吗?

Errors occurred during the build.
 Errors running builder 'Checkstyle Builder' on project 'myproject'.
  cannot initialize module TreeWalker - Unable to instantiate TabCharacter
  cannot initialize module TreeWalker - Unable to instantiate TabCharacter
 cannot initialize module TreeWalker - Unable to instantiate TabCharacter
 cannot initialize module TreeWalker - Unable to instantiate TabCharacter

我正在收集它与标签字符有关但不是很多其他内容。

更新:Eclipse版本为3.5,Checkstyle为5.0.0.200906281855-final。

(Java是jdk 1.6.0_10)


5040
2017-07-31 11:48


起源

“Checkstyle为5.0.0”表示TabCharacter不再可用:您需要更新Checkstyle配置文件,并仔细检查“其他人”正在使用的Checkstyle版本。 - VonC
究竟需要对文件进行哪些更新? - Marcus Wolschon
根据这个: checkstyle.sourceforge.net/config_whitespace.html 似乎TabCharacter检查现在称为FileTabCharacter。 - Stefan Thyberg


答案:


如上所述 这个bug,Checkstyle插件版本5.0.0.200906281855:

Checkstyle 5的发行说明 声明我们正在使用的某些模块和检查不向后兼容。
  例如。该 TabCharacter 不再出现在v5中 (是 取而代之 FileTabCharacter),因此无法工作。
  支票 FileLength 不需要语法树,因此不再需要父语句 TreeWalker

这意味着您的问题可能是在eclipse配置中自动更新Checkstyle插件。


16
2017-07-31 11:57



发现了问题,确实如此。显然我比其他人领先checkstyle版本。修改了checkstyle.xml以适应5.0.0,感谢您的帮助。 - Stefan Thyberg
希望未来的读者.. 6.2中也删除了功能.. - Ewoks
我是一个“未来”读者,我仍然有问题。我有数百[ERROR] MyClass.java [808:1](空白)FileTabCharacter:Line包含制表符。我有M2Eclipse 1.0.0.201503101518的Checkstyle配置插件com.basistech.m2e.code.quality.checkstyle.feature.feature.group:Eclipse Checkstyle插件6.11.1.201510102004 net.sf.eclipsecs.feature.groupeclipse-cs.sf.net     那我该怎么办? - Aerox
@Aerox 6年后,我建议问一个新问题:我现在没有这些设置。 - VonC
对不起,但我在@Ewoks上添加了一条评论,回复了今年发布的“未来读者提示”这句话。 - Aerox


如果您使用带有自定义cs插件类的checkstyle配置并且您的plugin.jar不在您的eclipse /插件路径中,则会出现“相同”问题。

所以在这种情况下错误只会说: 嘿老兄:找不到你的课,请给我;)


0
2018-01-13 16:16



我不相信我在问题中提到的课程是自我定义的。 - Stefan Thyberg
如果问题一解决你的问题,你的情况就可以了,但我想可能有其他人遇到与我一样的陷阱,很高兴看到第二个可能的解决方案;)无论这些课程是否准确,大多数人会发现通过搜索错误消息的某些部分来解决这个“问题”。 - childno͡.de
在这种情况下,我建议你提出一个关于这个问题的新问题然后回答你自己的问题,这样一来,人们更有可能找到正确的问题和正确的答案。特别是因为你的问题可能会产生不同的错误信息并且有完全不同的原因。 - Stefan Thyberg