【问题标题】:Checkstyle Error in Eclipse - Could not instantiate Tab characterEclipse 中的 Checkstyle 错误 - 无法实例化 Tab 字符
【发布时间】:2010-11-15 18:36:04
【问题描述】:

今天尝试使用 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)

【问题讨论】:

  • “Checkstyle is 5.0.0”表示 TabCharacter 不再可用:您需要更新 Checkstyle 配置文件,并仔细检查“其他人”使用的 Checkstyle 版本。
  • 需要对文件进行哪些更新?
  • 据此:checkstyle.sourceforge.net/config_whitespace.html 似乎 TabCharacter 检查现在称为 FileTabCharacter。

标签: java eclipse checkstyle


【解决方案1】:

this bug 中所述,Checkstyle 插件版本 5.0.0.200906281855:

Release notes of Checkstyle 5 声明我们正在使用的某些模块和检查不向后兼容。
例如。 模块 TabCharacter 不再出现在 v5 中(被替换为 FileTabCharacter),因此无法工作。
检查FileLength 不需要语法树,因此不再位于父TreeWalker 之下。

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

【讨论】:

  • 发现了问题,确实是这个。显然,我是其他人之前的 checkstyle 版本。修改 checkstyle.xml 以适应 5.0.0,感谢您的帮助。
  • 我是一个“未来”的读者,我仍然有这个问题。我有数百个 [ERROR] MyClass.java[808:1] (whitespace) FileTabCharacter: Line contains a tab character。我有 M2Eclipse 1.0.0.201503101518 com.basistech.m2e.code.quality.checkstyle.feature.feature.group 的 Checkstyle 配置插件:Eclipse Checkstyle Plug-in 6.11.1.201510102004 net.sf.eclipsecs.feature.group eclipse-cs.sf.net 那又怎样我必须做什么?
  • @Aerox 6 年后,我建议提出一个新问题:我现在没有这些设置。
  • 抱歉,我在@Ewoks 上添加了一条评论以回复今年发布的“给未来读者的提示”这句话。
  • @Aerox 好的,我一开始没明白。
【解决方案2】:

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

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

【讨论】:

  • 我不相信我在问题中所指的类是自定义的。
  • 如果第一个问题解决了您的问题,这对您的情况来说没问题,但我认为可能还有其他人陷入与我相同的陷阱,并且很高兴看到第二个可能的解决方案;)类是准确的,大多数人也会通过搜索错误消息的某些部分来找到这个“问题”。
  • 在这种情况下,我建议您针对该问题提出一个新问题,然后回答您自己的问题,这样更有可能有人会找到正确的问题和正确的答案。尤其是因为您的问题可能会产生不同的错误消息并且有完全不同的原因。
猜你喜欢
  • 2014-08-25
  • 2012-01-04
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2021-12-01
  • 2015-09-11
  • 1970-01-01
  • 2015-01-18
相关资源
最近更新 更多