You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行IOUFlowTests.kt时遇java.lang.NoClassDefFoundError错误求助

解决CorDapp示例中Run Flow Tests Kotlin时的LRUMap缺失错误

你在运行Corda官方CorDapp示例的Kotlin Flow测试时遇到的核心问题是java.lang.NoClassDefFoundError: org/apache/commons/collections4/map/LRUMap,这说明你的测试环境缺少了Apache Commons Collections4这个依赖库。下面是具体的解决步骤:

错误原因分析

这个错误是由于Corda的测试框架在初始化CordappLoader时需要用到LRUMap类,但该类属于Apache Commons Collections4库,而你的项目测试依赖中没有包含它,导致JVM找不到这个类。那些关于WindowsAnsiOutputStream的WARN日志只是Jansi库的小问题,不会影响测试执行,可以忽略。

解决方案

1. 通过Gradle添加依赖(推荐)

CorDapp示例默认使用Gradle构建,你只需要在项目根目录或模块的build.gradle文件中,找到dependencies代码块,添加测试依赖:

testImplementation 'org.apache.commons:commons-collections4:4.4'

添加完成后,打开终端(Windows可以用PowerShell或CMD),进入项目根目录,执行以下命令重新构建并运行测试:

gradlew clean test

2. IntelliJ中同步依赖并清除缓存

如果你是直接在IntelliJ IDEA中运行测试:

  • 先点击IntelliJ右上角的「Refresh all Gradle projects」按钮(刷新箭头样式的图标),确保Gradle拉取到新添加的依赖。
  • 如果还是不行,尝试清除IntelliJ的缓存:点击File -> Invalidate Caches...,选择「Invalidate and Restart」,重启IDE后再重新运行测试。

3. 手动添加依赖包(备选)

如果Gradle同步有问题,你可以手动下载Apache Commons Collections4的jar包(推荐版本4.4,兼容你的Java 8环境),然后将jar包添加到项目的测试类路径中:

  • 在IntelliJ中右键点击项目 -> Open Module Settings -> Libraries -> 点击加号添加下载好的jar包,确保它被标记为「Test」范围。

额外说明

你的Java版本(1.8.0_172)和Javac版本都是符合Corda CorDapp示例要求的,不需要调整版本。只要解决了依赖缺失的问题,测试就能正常运行。

内容的提问来源于stack exchange,提问作者Clyde D'Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:26:27