2012-07-31 13 views
12

最近Eclipse Junoをダウンロードし、最新のGroovyプラグインをインストールしました。EclipseでGroovyを実行中の例外java.lang.IncompatibleClassChangeError Juno

ここで私の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」は既にクラスパス上にあることに注意してください。

ここで私は間違っていますか?

+0

使用しているGroovyのバージョンは?コンパイルしているGroovyのバージョンが実行中のバージョンと同じであることを確認していますか? –

+0

私はgroovy 2.0.1をコマンドラインで使用しています。 Eclipse Junoでは、私のプラグインはgroovy-all-2.0とasm 4.0を表示します。 Eclipse Indigoでは、私のプラグインは同じことを示しています。 :) – user898535

+0

groovyの以前のバージョンでコンパイルしていますが、それ以降のバージョンで実行していると思います。 Preferences - > Groovy - > Compilerに行くと、どのバージョンが表示されますか? –

答えて

14

あなたは最新のグルーヴィー/依存型の瓶にいますか? 。

java.lang.IncompatibleClassChangeErrorは、後方互換性の問題が原因で発生します。 解決するには、クライアントコードを再コンパイルする必要があります。

表示されるエラーは、org.objectweb.asm.ClassVisitorがasm 3.2にInterface、asm 4.0以降にClassになっているためです。

+0

私はジェンキンズでビルドするときに、私のローカルマシンにはない同じエラーが発生しています。私はPOMからasm 3.2を除外しましたが、ジェンキンズが統合テストの実行を終了するとmavenコンパイラを実行しようとすると、そのエラーが発生します。 – Venki

+0

それは正しいAjayです。前にも言及したように、それは確かに問題に見えました。 :)そしてそれは提案に従って働いた。ありがとう。 :) – user898535

+0

素晴らしい。答えの近くにあるチックボタンをクリックして回答を受け入れることを検討してください –

2

私は同じモジュールでSpringとGroovyを使用して同じ問題を抱えていました。 3.1.2のSpringでは古いASMが使用されていますが、Groovyはそのクラスを使用します。いくつかの除外項目を調整することは可能かもしれませんが、必ずしもオプションではないと思います。

this threadを読んだ後は、Groovyに必要なすべてのライブラリのリストの代わりにgroovy-all.jarを使うことにしました。それがあなたのためのオプションであれば、それ以上の問題を回避する簡単な方法かもしれません。

関連する問題