0

これはあなたにとって簡単なものだと思います:

別のクラス XY (パッケージ src/groovy ... にあるグルーヴィー クラス) 内の静的フィールドにアクセスしたいコントローラーがあります。しかし、これは NoClassDefFoundError を取得します。

public class XY{ public static final String a = "something" }

in controller: XY.a causes error!!!

クラス XY 以外の同じパッケージ内の他のクラスは、問題を引き起こしません。

私は何を間違っていますか?

4

2 に答える 2

1

例を単純化しすぎたようです。と同じNoClassDefFoundErrorではありませんClassNotFoundExceptionClassNotFoundExceptionクラスが存在しない場合に発生します。NoClassDefFoundErrorクラスがそこにあるときに発生しますが、それが参照するものはそうではありません。そのため、修正するのは非常に面倒です。

XY パッケージはフォルダー構造と一致していますか (つまり、「com.foo」パッケージにある場合は、src/groovy/com/foo にあります)?

「grails clean」を実行してからもう一度実行してみてください。コンパイラの混乱が発生している可能性があり、すべてを再コンパイルすると問題が解決するか、実際の問題が発生する可能性があります。

于 2012-07-18T14:52:06.663 に答える
0

私は問題が何であるかを知りました:

クラス XY はコンパイルされましたが、(誤って宣言された) 静的整数に "" を代入しようとしました。

そのため、クラス全体を初期化できず、エラーが発生しました。

警告を出力するようにコンパイラを設定するプロパティはありますか?

ヒントをありがとう!

于 2012-07-19T08:13:00.770 に答える