1
我有一個問題,將一個c程序重定向到java運行時類。這就像java運行時重定向c程序輸出
Java Runtime execute C language program get no output
然而,答案不幫我類似的問題,我猜是因爲我在Windows環境。我已經安裝了Cygwin,並將路徑C:\ cygwin64 \ bin添加到我的環境中以運行我的c程序。我的C程序下方,編譯是A.EXE:
#include<stdio.h>
int main() {
printf("Hello World");
return 0;
}
在我的java程序:
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」);
到其他的bash命令等
方法P =調用Runtime.getRuntime()EXEC( 「LS -la」);
它的工作原理!
我曾嘗試使用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有關的東西,但我不知道如何解決這個問題。有誰知道什麼是錯的?在此先感謝,