Apache Flink的WordCount示例 - "main"线程中的异常:java.lang.NoClassDefFoundError:org/apache/flink/api/common/functions/FlatMapFunction

7

我按照这个指南操作,但是如果我在我的IDE中运行WordCount,则会出现异常

/usr/lib/jvm/java-8-oracle/bin/java -Didea.launcher.port=7536 -Didea.launcher.bin.path=/home/marc/Programs/idea-IC-162.2032.8/bin -Dfile.encoding=UTF-8 -classpath "/usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/home/marc/apache flink/flink.gelly/target/classes:/home/marc/Programs/idea-IC-162.2032.8/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain haw.bachelor.flink.gelly.WordCount
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.functions.FlatMapFunction
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more

我的环境:

  • Ubuntu 14.04 LTS
  • Oracle Java 8
  • Maven 3.0.5
  • IntelliJ社区版
4个回答

16

以下是我更改的设置,错误已被解决 这是我所更改的内容


在我的情况下起了作用。谢谢。 - Shahnur Isgandarli

6
在Intellij IDEA(2020.3)中,用户界面有所不同。
步骤:
1. 激活“运行配置”下拉菜单 Activate run-configuration dropdown 2. 点击“编辑配置...” Edit Run Configuration 3. 点击“修改选项” Select Modify Options 4. 选择“包括提供的作用域依赖项” Select include dependencies with provided scope 5. 点击“完成”
现在应该已经包含Flink源代码,并且应该解决了遇到的错误 - 对我来说确实如此!

0
如果您在IDE中运行它,必须从“运行配置”菜单中选择“mainRunner”而不是“root”。这将使类路径加载项目中“提供”的类。

请问您有时间能否分享一下在IntelliJ中如何操作的屏幕截图? - sri hari kali charan Tummala

0

我通过在IDE中停用Maven中的“build-jar”配置文件来解决了这个问题。似乎关闭它将使运行时类可用。


请问您能分享一下在IntelliJ IDEA中如何操作的屏幕截图吗? - sri hari kali charan Tummala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接