如何在java中写入输入流

时间:2009-11-04 14:34:13

标签: java windows

假设我使用exec()函数在java中执行命令,并将引用存储在Process中。我如何写入该过程的输入流

Process P = Runtime.getRuntime().exec("cmd /c start telnet"); 
System.out.println("done running .."); 
OutputStream output = P.getOutputStream(); 
BufferedOutputStream out = new BufferedOutputStream(output); 
String S = "open\n"; 
byte[] BS = S.getBytes(); 
out.write(BS); out.close(); 

我已经做到了,但它不起作用..........上面是我的代码附件

3 个答案:

答案 0 :(得分:2)

您写入输出流而不是输入流:

Process p = Runtime.getRuntime().exec(..);
OutputStream os = p.getOutputStream();
BufferedWriter bos = new BufferedWriter(new OutputStreamWriter(os));
bos.write("whatever u want");

答案 1 :(得分:2)

好像你真的想要进程'OutputStream,因为你想要向进程发送数据(除非我误解了你的问题)。

Here is an example

答案 2 :(得分:0)

我认为您的cmd /c电话中不需要exec位。因为exec本身会为你生成一个shell。无论如何,Java中的进程处理是一个真正的痛苦。如果可以,我建议您使用Apache exec包。它为你处理了许多低级别的痛苦。