Исключение java.lang.IncompatibleClassChangeError во время работы Groovy в Eclipse Juno
Недавно я загрузил Eclipse Juno и установил последний плагин Groovy.
Теперь вот как выглядит мой файл Groovy.
package groovy_support
class TimePass {
static void main(def args){
println "Hello World"
}
}
Когда я запускаю это из моей предыдущей версии eclipse (индиго) или из командной строки, она запускается. Однако на 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 Libraries" уже находятся в пути к классам.
Теперь, что я делаю неправильно здесь?
Ответы
Ответ 1
Вы находитесь в последних groovy/зависимых баночках?.
java.lang.IncompatibleClassChangeError
происходит из-за проблем совместимости задней панели.
Чтобы решить проблему, необходимо перекомпилировать код клиента.
Конкретная ошибка, которую вы видите, заключается в том, что org.objectweb.asm.ClassVisitor
является Interface в asm 3.2 и Class в asm 4.0 и далее.
Ответ 2
У меня была такая же проблема, используя Spring и Groovy в одном модуле. Spring в 3.1.2 по-прежнему использует более старую ASM, Groovy использует одно с классом. Хотя может быть возможно скорректировать некоторые исключения, я уверен, что это не всегда вариант.
После чтения этот поток Я решил сделать с groovy -all.jar вместо списка всех Groovy необходимых библиотек, Если это вариант для вас, это может быть легко, как избежать дальнейших проблем.
Ответ 3
Я перепробовал много решений для ошибки ниже.
java.lang.IncompatibleClassChangeError: Найден интерфейс org.objectweb.asm.MethodVisitor, но ожидался класс. Только тот, который работал, исключает заводной артефакт из восстановленной зависимости. Пожалуйста, обратитесь к ссылке ниже для полного обхода.
https://blog.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/