【问题标题】:Exception java.lang.IncompatibleClassChangeError while running Groovy in Eclipse Juno在 Eclipse Juno 中运行 Groovy 时出现异常 java.lang.IncompatibleClassChangeError
【发布时间】:2012-07-29 03:19:01
【问题描述】:

我最近下载了 Eclipse Juno 并安装了最新的 Groovy 插件。

现在这是我的 Groovy 文件的样子。

package groovy_support

class TimePass {
static void main(def args){
    println "Hello World"
}
}

当我从以前的 Eclipse 版本 (indigo) 或命令行运行它时,它会运行。但是,在 Eclipse Juno 上,它在 Eclipse 控制台上抱怨以下异常。

Caught: java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.ClassVisitor, but interface was expected
java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.ClassVisitor, but interface was expected

请注意,“Groovy 库”已经在类路径中。

现在我做错了什么?

【问题讨论】:

  • 你使用的是什么版本的 groovy?您是否确保您正在编译的 groovy 版本与您正在运行的版本相同?
  • 我在命令行上使用 groovy 2.0.1。在 Eclipse Juno 中,我的插件显示 groovy-all-2.0 和 asm 4.0。在 Eclipse Indigo 中,我的插件显示相同。 :)
  • 我的猜测是您正在使用早期版本的 groovy 进行编译,但使用更高版本运行。当您转到 Preferences -> Groovy -> Compiler 时,您会看到什么版本?
  • 您不妨在下面接受 Ajay 的回答,因为他的建议使我发现了您所看到的可能问题。

标签: eclipse groovy eclipse-juno


【解决方案1】:

针对以下错误,我尝试了许多解决方案。 java.lang.IncompatibleClassChangeError:找到接口 org.objectweb.asm.MethodVisitor,但需要类。只有一个工作是从放心的依赖中排除常规的工件。请参阅以下链接了解完整的解决方法。

https://blog.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/

【讨论】:

    【解决方案2】:

    我在一个模块中使用 Spring 和 Groovy 时遇到了同样的问题。 Spring 在 3.1.2 中仍然使用旧的 ASM,Groovy 使用带有类的那个。虽然可以调整一些排除项,但我敢打赌这并不总是一种选择。

    阅读this thread 后,我决定使用 groovy-all.jar 而不是所有 Groovy 所需库的列表。如果这对您来说是一个选择,那么如何避免任何进一步的问题可能是一种简单的方法。

    【讨论】:

      【解决方案3】:

      你在使用最新的 groovy/dependent jars 吗? .

      java.lang.IncompatibleClassChangeError 是由于向后兼容性问题而发生的。 需要重新编译客户端代码才能解决。

      您看到的具体错误是因为 org.objectweb.asm.ClassVisitor 在 asm 3.2 中是 Interface,在 asm 4.0 及更高版本中是 Class

      【讨论】:

      • 当我在 jenkins 上构建它时,我在本地机器上没有遇到同样的错误。我从我的 POM 中排除了 asm 3.2,但是当 jenkins 在完成运行集成测试后尝试运行 maven 编译器时仍然会出现该错误。
      • 没错,阿杰。如前所述,这似乎确实是问题所在。 :) 它按照建议工作。谢谢。 :)
      • 太棒了。考虑通过单击答案附近的勾选按钮来接受答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      相关资源
      最近更新 更多