2012-07-30 58 views
0

我想用java编写一个管理程序,它将执行一个c程序并可以读取它的输入流并写入输出流。如何获得正在运行的c程序的标准输入和标准输出

客户机将请求Çexe文件,然后服务器将处理像它后面的请求:

  1. 处理软件将被执行。
  2. 它会执行一个c程序。
  3. 可以发送c程序的输出到浏览器(输入流)。
  4. 应该能够接受来自浏览器的输入并提供给c程序。

我曾尝试使用运行时和进程执行c代码。但它有例外

--------------------------- 
16 bit MS-DOS Subsystem 
--------------------------- 
Error while setting up environment for the application. Choose 'Close' to terminate the application. 
--------------------------- 
Close 
--------------------------- 

有帮助吗?

code: import java.io. *;

class Dev 
{ 
public static void main(String args[]) 
{ 
    try 
    { 
     Process p = Runtime.getRuntime().exec("dev.exe"); 
     InputStream is = p.getInputStream(); 
     // from her i'll do the stuff but it gives error. 

    } 
    catch(Exception e) 
    { 
     System.out.print("\n\n\t Error : "+e); 
    } 
} 
} 
+1

你能提供你的代码吗? – Makoto 2012-07-30 13:16:38

+1

如果您需要帮助,您将不得不向我们显示代码。 – steffen 2012-07-30 13:16:56

回答

1

可以通过创建实现Runnable一个类,然后传递一个Process,其在this answer描述执行程序。那里的答案还描述了如何在InputStream中获得进程的输出。至于传入一些输入,这可以通过在命令行中输入一个字符串来完成。在从答案Process -making线,您可以添加:

//... 
String someInput, command; // Set these to the appropriate values. 
Process p = Runtime.getRuntime().exec("echo \"" + someInput + "\"|" + command); 
//... 

这将管someInputcommand值。这是基于命令行的,并且在技术上是特定于平台的,但应该在Linux,OS X和Windows上无需更改。

相关问题