2

コンソールから入力を受け取るCコードがあります。

main() {

 int value;
 printf("Enter a value");
 scanf("%d", &value);
 printf("the value is, %d", value);
 return;
}

ここで、.exe ファイルをコンパイルして作成します。(たとえば、test.exe)

その後、その実行可能ファイルを Java コードから呼び出したいと思います。

だから、私は使った

public class JavaTest {
static String s=null;
public static void main(String[] args) throws java.io.IOException, java.lang.InterruptedException {

    java.lang.Runtime rt = java.lang.Runtime.getRuntime();


    System.out.println("start");
    java.lang.Process p = rt.exec("test.exe");

    BufferedReader stdInput = new BufferedReader(new 
            InputStreamReader(p.getInputStream()));


    while ((s = stdInput.readLine()) != null) {
        System.out.println(s);
    }

    p.waitFor();

    System.out.println("done.");
 }
}

明らかに、それはうまくいきません。私の質問は、実行時に整数をプロセスに渡すにはどうすればよいですか? コマンドラインパラメータとして渡したくありません。

4

1 に答える 1

0

Process の inputStream を使用する前に、outputStream を使用してください。整数を output.Stream に書き込みます

于 2013-02-21T11:24:07.577 に答える