私はScala 2.11.7を使用してApache Flink 1.0.3でアプリケーションを作成しました。これをローカルにテストしたい(単一のjvm)。だから私はウェブサイトで述べたように次のようにした:Apache Flink - org.apache.flink.client.program.ProgramInvocationException
./bin/start-local.sh
tail log/flink-*-jobmanager-*.log
そして、それはうまく始まる、私はlocalhost:8081でWebインターフェイスを見ることができます。 その後、私は自分のアプリケーションを提出しようとしましたが、例外か奇妙なメッセージが出ます。私は、次のいずれかのコマンドを入力するとき例:
./bin/flink run ./myApp.jar
./bin/flink run ./myApp.jar -c MyMain
./bin/flink run ./myApp.jar -c myMain.class
./bin/flink run ./myApp.jar -c myMain.scala
./bin/flink run ./myApp.jar -c my.package.myMain
./bin/flink run ./myApp.jar -c my.package.myMain.class
./bin/flink run ./myApp.jar -c my.package.myMain.scala
を私は次の例外を取得:
------------------------------------------------------------
The program finished with the following exception:
org.apache.flink.client.program.ProgramInvocationException: Neither a 'Main-Class', nor a 'program-class' entry was found in the jar file.
at org.apache.flink.client.program.PackagedProgram.getEntryPointClassNameFromJar(PackagedProgram.java:571)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:188)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:126)
at org.apache.flink.client.CliFrontend.buildProgram(CliFrontend.java:922)
at org.apache.flink.client.CliFrontend.run(CliFrontend.java:301)
at org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:1192)
at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1243)
そして、私は次のいずれかのコマンドを入力します。
./bin/flink run ./ -c myMain myApp.jar
./bin/flink run ./ -c myMain.class myApp.jar
./bin/flink run ./ -c myMain.scala myApp.jar
./bin/flink run ./ -c my.package.myMain myApp.jar
./bin/flink run ./ -c my.package.myMain.class myApp.jar
./bin/flink run ./ -c my.package.myMain.scala myApp.jar
私が手次のエラー:
JAR file is not a file: .
Use the help option (-h or --help) to get help on the command.
上記のコマンドは、-cまたは--classで動作しません。私はIntelliJを使用し、DependenciesからBuild Moduleオプションを使用してアプリケーションをコンパイルしました。私は間違って何をしていますか?
'myApp.jar'に' MyMain'クラスが含まれていないことがありますか? 'jar -tf myApp.jar'を実行し、それに上記のクラスが含まれていることと、このクラスに' main'メソッドが含まれていることを確認できますか? –
あなたが言及したコマンドを使用しました。私が作成したクラスを見つけることができなかった奇妙な理由のために。なぜそれが起こっているのですか? –
私はWinRarを使ってjarファイルを開き、その内容を見ました。プロジェクトのすべてのクラスを見つけることができ、MyMain.classとMyMain $ .classを見つけることができました。 –