2016-07-06 6 views
1

CプログラムをJavaランタイムクラスにリダイレクトするときに問題があります。それはしかし、答えは私を助けていない、と私はWindows環境で午前ので、私は推測していJavaランタイムリダイレクトCプログラム出力

Java Runtime execute C language program get no output

のような類似した問題です。私はCygwinをインストールして、Cのプログラムを実行するためにC:\ cygwin64 \ binというパスを自分の環境に追加します。私のCプログラムでは、以下の通りであるとA.EXEとしてコンパイル:

私のJavaプログラムで
#include<stdio.h> 
int main() { 
    printf("Hello World"); 
    return 0; 
} 

Process p = Runtime.getRuntime().exec("C:\\a.exe"); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    while (in.ready()) { 
     System.out.println(in.readLine()); 
    } 

このコードは何も出力しません。しかし、私が変更した場合

プロセスp = Runtime.getRuntime()。exec( "C:\\ a.exe"); 。

プロセスp = Runtime.getRuntime()のexec( "LS -la")のような他のbashコマンドに

私はProcessBuilderを使用して出力をリダイレクトしようとしましたが、 "a.exe"は動作しませんが、 "ls -la"は動作します。これはコードです:

File output = new File("C:\\outputfile.txt"); 
ProcessBuilder pb = new ProcessBuilder("C:\\a.exe").inheritIO(); 
pb.redirectOutput(output); 
Process p = pb.start(); 

私の推測はCgywinに関連していますが、これを修正する方法はわかりません。誰が何が間違っているのか分かりますか?事前のおかげで、

答えて

1

私はこの研究を行って一日中過ごしてきた、そして最終的に私は自分のコンピュータを再起動することでこの問題を解決.....とすべての作品の後....

関連する問題