Apache Flink运行时ClassNotFoundException: DescribedEnum问题求助
Apache Flink运行时ClassNotFoundException: org.apache.flink.configuration.DescribedEnum 解决思路
编译阶段无错误,但运行Flink应用时抛出如下异常:
Caused by: java.lang.ClassNotFoundException: org.apache.flink.configuration.DescribedEnum
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
当前pom.xml相关配置片段:
<scala.version>2.12.8</scala.version> <scala.binary.version>2.12</scala.binary.version> <flink.version>1.13.5</flink.version> ... <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_${scala.binary.version}</artifactId> <version>${flink.version}</version> </dependency>
已完成的操作:
下载了对应版本的源码包:
wget https://archive.apache.org/dist/flink/flink-1.13.5/flink-1.13.5-src.tgz
解决思路
- 添加缺失的核心依赖:
org.apache.flink.configuration.DescribedEnum属于Flink的flink-core模块,在pom.xml中添加以下依赖:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> <version>${flink.version}</version> </dependency>
- 检查依赖范围:如果该依赖被设置为
provided,本地运行时需要移除这个范围(provided仅适用于Flink集群环境,集群会提供该依赖),否则运行时会找不到类。 - 清理项目缓存与重新构建:在IntelliJ中执行
File -> Invalidate Caches...清理缓存,再运行mvn clean install重新构建项目,避免依赖缓存导致的问题。 - 统一Flink依赖版本:确保所有Flink相关依赖的版本都是1.13.5,版本不一致可能引发类缺失或兼容性冲突。
内容的提问来源于stack exchange,提问作者fossy
相关产品推荐
相关产品推荐

