JavaからLinuxプロセスを呼び出す

2009/07/03 18:10Update
TAGS: Java | Linux | プロセス | Process | ProcessBuilder

LinuxやWindowsなどのOSの外部プロセスをJavaから呼び出すことができます。本文はその呼び出し方について解説します。

簡単なサンプルから説明したいと思います。

JDK1.4前のバージョン
    String command = "javac –cp . *.java";    //外部プロセス
    //String []command = {"javac", "–cp .", "*.java"};
    Process process = Runtime.getRuntime().exec(command);    //コマンド実行(プロセス取得)
    InputStream is = process.getInputStream();        //実行されたプロセスからInputStream(入力ストリーム)取得
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println("javac>" + line);    //実行結果をInputStreamから取得
    }
    //TODO is.close();
    int ret = process.waitFor();


JDK1.5以降のバージョン
    String command = "javac –cp . *.java";    //外部プロセス
    ProcessBuilder pb = new ProcessBuilder(command);    //ProcessBuilder構築
    //ProcessBuilder pb = new ProcessBuilder("javac", "–cp . ", "*.java");
    Process process = pb.start();    //プロセス実行
    InputStream is = process.getInputStream();        //実行されたプロセスからInputStream(入力ストリーム)取得
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println("javac>" + line);    //実行結果をInputStreamから取得
    }
    //TODO is.close();
    int ret = process.waitFor();

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation