2016-07-06 58 views
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有关的东西,但我不知道如何解决这个问题。有谁知道什么是错的?在此先感谢,

回答

1

我花了整天做这个研究后,最后我通过重新启动我的电脑修复此问题.....并且一切正常......