0

Javaプログラムで外部Cプログラムをコンパイルするために次のコードを試しています

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public static void main(String[] args){
    try{
        Runtime rt=Runtime.getRuntime();
        Process pr=rt.exec("cmd /c PATH=%PATH%;c:\\TC\\BIN");
        pr=rt.exec("cmd /c c:\\TC\\BIN\\TCC.exe c:\\TC\\EXAMPLE.c");
        pr=rt.exec("c:\\TC\\EXAMPLE.exe");
        BufferedReader input=new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line=null;

        while((line=input.readLine())!=null){
            System.out.println(line);
        }
        int exitVal=pr.waitFor();
        System.out.println("exited with error code "+exitVal);
    }
    catch(Exception e){
        System.out.println(e.toString());
        //e.printStackTrace();
    }
}
}

しかし、私は得ています:

java.io.IOException: プログラム "c:\TC\EXAMPLE.exe" を実行できません: CreateProcess エラー = 2、指定されたファイルが見つかりません

コンパイル プロセスが機能していません。C コードをコンパイルするために他に何ができますか?

4

2 に答える 2

3

これにはProcessbuilder API を使用してください。ドキュメントには、さまざまなフラグの使用方法の例があります。

于 2012-09-09T16:51:54.887 に答える
1

コンパイルされたプログラムが生成される前に呼び出していると思います。電話を待つ必要があります。

pr=rt.exec("cmd /c c:\\TC\\BIN\\TCC.exe c:\\TC\\EXAMPLE.c");

コンパイルされた出力を呼び出す前に終了します。

于 2012-09-09T16:50:09.243 に答える