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コードとは異なるため、事前に対応するライブラリのインストールと設定が必要です。

bannerAds