2016-10-15 5 views
0

PythonアプリケーションとJavaアプリケーションを実装しました。 私のPythonアプリケーションが結果としてTrueを返すとしましょう。Java経由でPythonコードを実行するためのパスを変更する

PythonアプリケーションをJavaアプリケーションで実行し、PythonアプリケーションからJavaアプリケーションに結果を受け取り、Javaアプリケーションで追加の計算を行いたいとします。

私はこのミッションのためにJavaでプロセスを使用します。 私の例では、Pythonアプリケーションはconfig.iniファイルをパラメータとして実行しています。

String path = "C:\\Python_Project\\run_app.py configuration\\config.ini"; 
Process p = Runtime.getRuntime().exec("python " + path); 

動作しません。 JavaアプリケーションはPythonアプリケーションから面白いことはありません。

私は、私はこのようなインポートを使用し、コマンドプロンプトを経由して、それを実行することを決定し、実行が原因で私の内部のいずれかのファイルに失敗したことがわかった: inner_moduleインポートオブジェクト1

から多分これが問題でしょうか?私はPythonのアプリディレクトリからそれを実行する必要がありますか?しかしどうですか?

  1. それは私のPythonアプリケーションを実行するためのパスを変更する方法です:

    私は2つの質問がありますか?私はJavaアプリケーションディレクトリからJavaアプリケーションを実行し、Pythonアプリケーションディレクトリ内でPythonアプリケーションを実行する必要がありますか?その方法を変更するにはどうすればよいですか?

  2. Processとexecの使用は良いですか?私は別のものを使うべきですか? True値のPythonアプリケーションを送信するプロセスをどのように使用できますか?

答えて

0

あなたは作業ディレクトリを設定することができますProcessBuilderを試すことができます。以下のような何か:

ProcessBuilder pb = new ProcessBuilder(program, argument); 
pb.directory(new File("path/to/python/directory")); 
Process process = pb.start(); 
あなたはprocess.getInputStream()から読み込むことで、スクリプトの出力を得ることができ

BufferedReader reader = new BufferedReader(
    new InputStreamReader(process.getIntputStream())); 

String output; 
while((output=reader.readLine()) != null) 
    System.out.println(output); 
関連する問題