maven项目中的java.lang.NoSuchMethodError:org.w3c.tidy.Tidy.setHideComments错误

时间:2013-01-31 11:50:05

标签: java maven maven-2

我正在进行Maven项目。当我运行项目时,我收到错误。错误的原因是

Caused by: java.lang.NoSuchMethodError: org.w3c.tidy.Tidy.setHideComments(Z)V

我认为Maven存储库中可能缺少jar。但我在那个存储库中找到了jar。

我有jtidy-4aug2000r7-dev.jar at C:\.m2\repository\jtidy\jtidy\4aug2000r7-dev

有人可以说明问题的可能原因。

3 个答案:

答案 0 :(得分:1)

我想问题可能出在jtidy.jar的版本上。你提到的当前版本已经很老了(2000年8月4日)。

我搜索了4aug2000r7-dev.jar版本,然后发现了 API

我在Tidy.java

中没有看到setHideComments()方法

请检查您没有相同jar的多个版本。

尝试JTidy 8.0-SNAPSHOT here。它包含方法。

答案 1 :(得分:1)

当您加载需要B类方法的A类时,会发生NoSuchMethodError,该类在JVM加载的B版本中不存在。在这种情况下,JVM期望找到一个带有签名void setHideComments(boolean)的非私有方法......但它不存在。

有三个常见原因:

  • 您已更改或删除了B中的方法并重新编译了B ...但也没有A。

  • 您的某些库JAR文件版本错误;例如包含A的JAR取决于包含B的JAR的不同版本,而不是您列为依赖项的JAR。

  • 前一个版本的一个变体是,在某种程度上,您在执行类路径中有一个或另一个JAR文件的两个版本。

假设您没有修改jtidy,第一个解释不适用。

答案 2 :(得分:0)

你的jar文件很可能很旧(2000年8月4日),可能是后来添加了这些方法。尝试使用此jar