0

使用 Play 2.0.2 框架,我遇到了类加载器冲突。看起来在不同的类加载器中有同一个类的两个定义。控制台运行,但是当我发出“运行”命令时,播放响应:

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 回答