在 apache flink 中运行生成的 jar 文件



目前我正在尝试运行我的第一个 flink 应用程序。我已经在 IDE 中测试了 java 文件 (KMeans.java(,它运行良好,但我无法处理让这个 java 文件在命令行中作为 jar 运行.
该构建是使用mvn clean package成功创建的。 但是,如果我在命令行中运行我的jar文件flink run -c KMeans name.jar
则会出现此错误消息:

程序完成,但出现以下异常:

org.apache.flink.client.program.ProgramInvocationException: 在 jar 文件中找不到程序的入口点类"KMeans"。 在 org.apache.flink.client.program.PackagedProgram.loadMainClass(PackagedProgram.java:617( 在 org.apache.flink.client.program.PackagedProgram.(打包程序.java:199( 在 org.apache.flink.client.cli.CliFrontend.buildProgram(CliFrontend.java:856( at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:206( 在 org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1044( 在 org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1120( at java.security.AccessController.doPrivileged(Native Method( at javax.security.auth.Subject.doAs(Subject.java:422( at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1754( 在 org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41( 在 org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1120( 原因:java.lang.ClassNotFoundException: KMeans at java.net.URLClassLoader.findClass(URLClassLoader.java:381( at java.lang.ClassLoader.loadClass(ClassLoader.java:424( at java.lang.ClassLoader.loadClass(ClassLoader.java:357( at java.lang.Class.forName0(Native Method( at java.lang.Class.forName(Class.java:348( at org.apache.flink.client.program.PackagedProgram.loadMainClass(PackagedProgram.java:614( ...10 更多

所以我查找了我生成的目标文件夹,类文件夹中有一个 KMeans.class 文件。所以我做错了?

您需要指定完整的类名,例如org.apache.flink.examples.java.clustering.KMeans.

请注意,仅当 JAR 文件未指定要在其清单中运行的类时,才需要使用 -c 标志。

相关内容

  • 没有找到相关文章

最新更新