5

Java プログラムから Python、Ruby、C、C++、および Java スクリプトを実行しようとしていますが、スクリプトを実行する良い方法として Processbuilder が提案されました。私が理解していることから、Processbuilder は主にネイティブ ファイル (Windows では .exe など) を実行します。ただし、Processbuilder を使用してスクリプト (非ネイティブ) ファイルを実行することについて、いくつか聞いたことがあります。残念ながら、この件に関して私が見つけたものはすべて信じられないほど曖昧です。

誰かが Python や Ruby などの非ネイティブ スクリプトを実行する方法を明確にしてくれたら、とても感謝しています!

4

2 に答える 2

6

ProcessBuilderSunoracle でドキュメントを確認できますが、基本的には、スクリプト言語のインタープリターを実行し、実行するスクリプトを渡すことができます。

たとえば、 にスクリプトがあり/home/myuser/py_script.py、 にpythonあるとします。/usr/bin/

class ProcessRunner
{
    public static void main(String [] args)
    {
        ProcessBuilder pb = new ProcessBuilder("/usr/bin/python", "/home/myuser/py_script.py");
        Process p = pb.start();
    }
}

非常に基本的な例ですが、作業ディレクトリを変更して環境を変更することで、より洗練されたものにすることができます。

ProcessBuilderString配列またはサブタイプで構築することもできますList<String>。リストの最初の項目は、実行するプログラム/実行可能ファイルである必要があり、以降のすべての項目はプログラムへの引数です。

String pbCommand[] = { "/usr/bin/python", "/home/myuser/py_script.py" };
ProcessBuilder pb = new ProcessBuilder(pbCommand);
Process p = pb.start();
于 2011-01-10T15:40:27.393 に答える