現在、私は、GUIとpythonスクリプトを使ってプログラムの主な機能を実行するプロジェクトを開発中です。Javaを使用してPythonアプリケーションを実行し、その出力を解析します。
私は、アプリケーションディレクトリ内からpythonスクリプトを実行し、その出力を解析用のGUIプログラムに送信する方法があるのだろうかと思っていました。出力はJSON/YAML/Plaintextなどです(GUIで解析されます)。
つのオプション私は(または動作してもしなくてもよい)の考えは以下の通りであった。
- 別途Pythonプログラムを実行して持つが、それはこれがその後、(Javaプログラムによって読み込まれるファイルである出力私最も好きなもの)
ProcessBuilder
またはRuntime.exec
を使用してPythonプログラムを実行します。ただし、出力はどのようにして得られますか?
私の考えていたオプションがどちらも実現可能でないか、うまくいかない場合は、これをもっとうまくいく方法がありますか?
ありがとうございます!
両方とも動作しますが、私は 'ProcessBuilder#redirectOutput(Redirect)'と 'redirectError'を好むでしょう。ストリームから読み込むために別々のスレッドを使用してください。そうしないと、出力バッファをいっぱいにした後にプロセスがハングすることがあります。 – maaartinus