【问题标题】:play, scala and jerkson noClassDefFound error玩,斯卡拉和杰克逊 noClassDefFounderror
【发布时间】:2013-05-18 04:24:50
【问题描述】:

我正在尝试使用 jerkson 和 scala 2.10。 但是,我想加载基于 json 文件的数据夹具。对于这个过程,我正在尝试使用来自 jerkson 的“parse”命令加载 json。 最终失败了。

我在“override def onStart(app: Application)”函数中执行此操作。错误:

NoClassDefFoundError: Could not initialize class com.codahale.jerkson.Json$

任何猜测为什么会发生这种情况?我的部门中有以下库:

"com.codahale" % "jerkson_2.9.1" % "0.5.0",
"com.cloudphysics" % "jerkson_2.10" % "0.6.3"

我的解析命令是:

com.codahale.jerkson.Json.parse[Map[String,Any]](json)

提前致谢

【问题讨论】:

  • 包含两个版本的 jerkson 的任何特定原因,一个用于 scala 2.10,一个用于 scala 2.9.1。这通常是个坏主意。
  • 不,我添加了 2.10 版本,因为我使用的是 scala 2.10。但是,只移到一个并没有帮助

标签: json scala playframework-2.0 jerkson


【解决方案1】:

NoClassDefFoundError 通常意味着类路径存在某种问题。对于初学者,如果您在 scala 2.10 上运行,我将从您的 sbt 文件中删除以下行:

"com.codahale" % "jerkson_2.9.1" % "0.5.0"

然后,确保 com.cloudphysics jerkson jar 文件在您的应用类路径中可用,然后再次尝试您的测试。

【讨论】:

  • 导致 NoClassDefFoundError: scala/reflect/ClassManifest
  • 你能发布你的 build.sbt 文件吗
  • 添加 sonatype 存储库修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2020-09-22
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多