线程“主”java.lang.NoClassDefFoundError 中的异常:com/fasterxml/jackson/databind/Module

Posted

技术标签:

【中文标题】线程“主”java.lang.NoClassDefFoundError 中的异常:com/fasterxml/jackson/databind/Module【英文标题】:Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module 【发布时间】:2021-09-04 11:10:02 【问题描述】:

我有一个 Scala sbt 项目,我试图在我的 IntelliJ 上运行,但我遇到了以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module

我已将依赖项包含在我的 build.sbt 中

libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.1" 

有人可以告诉我缺少什么吗?

我还认为它可能需要一些与 scala 相关的依赖项,所以我添加了虽然我不确定但仍然是同样的错误

// https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-scala
libraryDependencies += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.12.3"

大家有什么建议吗?

【问题讨论】:

火花版本? 【参考方案1】:

当您的代码依赖于某个类(在您的情况下为 jackson.databind.Module)时会发生此错误,但 java 在尝试编译时找不到它,因为依赖地址未作为参数传递给 Java,如果您在你的 build.sbt 文件,在 IntelliJ 中试试这个:

sbt reload (in your application terminal or sbt shell)
File > Invalidate cache and restart

只需更新项目并索引项目和依赖项,以便更新编译和运行命令,这可能会解决您的问题。

【讨论】:

糟糕!还要检查你是否有正确的依赖关系【参考方案2】:

添加解决

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.10.5"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.5"
dependencyOverrides += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.10.5"

构建.sbt 文件。

【讨论】:

以上是关于线程“主”java.lang.NoClassDefFoundError 中的异常:com/fasterxml/jackson/databind/Module的主要内容,如果未能解决你的问题,请参考以下文章

主线程啥都没做,就会等待子线程结束。这是为啥?

Android 异步操作Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

子线程怎么不阻塞主线程

QT中UI主窗口如何与子线程相互传递参数

java 子线程 回调 主线程

C++怎么在主线程中使用子线程的数据? 比如说主线程中有一个数组,如何在子线程中调用这个数组