Java から直接 Python ステートメントを実行する方法
Javaで直接Pythonの文を実行するのは比較的複雑で、サードパーティのライブラリを使用する必要があります。
一般的に使用される手法は`ProcessBuilder`クラスを使用して外部プロセスを作成し、Pythonスクリプトを実行することです。以下のコード例のように記述します。
import java.io.IOException;
public class PythonExecutor {
public static void main(String[] args) {
try {
// 创建进程构建器
ProcessBuilder pb = new ProcessBuilder("python", "-c", "print('Hello, World!')");
// 启动进程
Process process = pb.start();
// 等待进程执行完成
int exitCode = process.waitFor();
// 打印进程输出
java.io.InputStream inputStream = process.getInputStream();
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
System.out.println(new String(buffer));
// 打印进程错误输出
java.io.InputStream errorStream = process.getErrorStream();
byte[] errorBuffer = new byte[errorStream.available()];
errorStream.read(errorBuffer);
System.out.println(new String(errorBuffer));
// 打印进程退出码
System.out.println("Exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
例としてプロセスビルダーのクラスを使用して外部プロセスを作成し、実行するPythonコードを指定している(”Hello, World!”をプリント)。そのあとstart()メソッドでプロセスを開始し、waitFor()メソッドでプロセスの実行が完了するのを待つ。最後にgetInputStream()メソッドでプロセスの出力を取得し、getExitCode()メソッドでプロセスの終了コードを取得する。
また、Jython や JPY などの他社のライブラリを使用することもできます。これらのライブラリは、JavaでPythonコードを直接実行できます。ただし、これらのライブラリの使用方法が通常のJavaコードとは異なるため、事前に対応するライブラリのインストールと設定が必要です。