0

Play 2.0.2 フレームワークを使用すると、クラスローダーの競合が発生します。異なるクラスローダーに同じクラスの 2 つの定義があるようです。コンソールは実行されますが、「run」コマンドを発行すると、play は次のように応答します。

java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "play.api.PlayException.cause()Lscala/Option;" 
the class loader (instance of sbt/PlayCommands$$anonfun$61$$anonfun$63$$anon$2) of the current class, play/api/PlayException, 
and the class loader (instance of java/net/URLClassLoader) for interface
play/api/PlayException$UsefulException have different Class objects for the 
type scala/Option used in the signature

誰でもこれをデバッグし始めるのに適した場所がありますか? または、なぜこれが起こっているのか考えていますか?明らかに、クラスはさまざまなローダーによってロードされていますが、私はプレイローダーの構成に慣れていません。

ポートを使用してscalaとsbtをインストールしました

sbt @0.11.2_0 (active)
scala2.9 @2.9.2_0 (active)

ポート バイナリの前に PATH が再生されます。

Java の使用

java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-10M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

走るユキヒョウ

4

1 に答える 1

0

ポート sbt が ~/.sbt ディレクトリを作成し、その構成が優先されることが判明しました。そのディレクトリを削除/別の場所に移動すると、問題が解決します。

于 2012-07-25T22:53:19.557 に答える