Jythonなどについては何も知りません。Java アプリがテキストを変換する必要があるたびに新しいプロセスを実行することなく、2 つのプログラムを実行できるのであれば、それが最善の解決策だと思います。とにかく、単純な概念実証は、Java アプリとは別のプロセスを実行してそれを機能させることです。次に、これらすべてのツールを使用して実行を強化できます。
Javaから別のプロセスを実行する
String[] envprops = new String[] {"PROP1=VAL1", "PROP2=VAL2" };
Process pythonProc = Runtime.getRuntime().exec(
"the command to execute the python app",
envprops,
new File("/workingdirectory"));
// get an outputstream to write into the standard input of python
OutputStream toPython = pythonProc.getOutputStream();
// get an inputstream to read from the standard output of python
InputStream fromPython = pythonProc.getInputStream();
// send something
toPython.write(.....);
// receive something
fromPython.read(....);
重要: 文字はバイトではありません
多くの人がこれを過小評価しています。
char から byte への変換には注意してください (Writers/Readers は char 用であり、Input/OutputStreams はバイト用であり、エンコードは相互に変換するために必要です。OuputStreamWriter
文字列をバイトに変換して送信し、InputStreamReader
バイトを char に変換して読み取るために使用できます)。彼ら)。