Flink 1.12.1 NoClassDefFoundError SourceFunction


Flink 1.12.1 java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/functions/source/SourceFunction

錯誤信息描述

使用Idea運行項目,拋出以下異常

java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/functions/source/SourceFunction
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
	at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
	at java.lang.Class.getMethod0(Class.java:3018)
	at java.lang.Class.getMethod(Class.java:1784)
	at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.api.functions.source.SourceFunction
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 7 more
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" 

解決方案一

修改pom文件,把里面與flink有關的scope為provided的代碼行注釋,類似以下效果

<!-- This dependency is provided, because it should not be packaged into the JAR file. -->
<dependency>
	<groupId>org.apache.flink</groupId>
	<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
	<version>${flink.version}</version>
	<!-- <scope>provided</scope> -->
</dependency>
<dependency>
	<groupId>org.apache.flink</groupId>
	<artifactId>flink-clients_${scala.binary.version}</artifactId>
	<version>${flink.version}</version>
	<!-- <scope>provided</scope> -->
</dependency>

刷新Maven依賴,重新運行項目

maven reimport

解決方案二

我使用的是Idea 2020.3,通過調整idea配置,支持在項目運行時,將Provided的依賴有效

進入Edit Configurations

選擇Modify options,選擇Use classpath of module

選擇Inclue dependencies with "Provided" scope


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM