一个后台的程序怎么捕获控制台的标准输出? 是在linux下java XXXX &运行,怎么捕获控制台的输出? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在java程序运行时控制台的输出也就是java程序的输出可以通过重定向实现 java程序是在后台运行的。这时在控制台输出不会重定向。 接收键盘的输入 BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); 可是有些输出是其他程序打印在控制台的,并不全是System.in 楼主意思是,你的java要俘获另一个控制台的输出? C里面用 pipe(int[]),再将pipe的输入与stdout(也就是1)进行dup2,就可以获得标准输出。可是在java中System.Out似乎跟当前进程相关。 转帖import java.io.*;public class CaptureOutput{ public static void main(String[] args) { try { String cmd = "ping "; String param = args.length == 1 ? args[0]:"192.168.2.26"; Process child = Runtime.getRuntime().exec( cmd + param ); InputStream child_in = child.getInputStream(); int c; while ((c = child_in.read()) != -1) { System.out.print((char)c); } child_in.close(); }catch (IOException e) { System.err.println(e); } }} 谢谢StockCsdn,不过要捕获的输出的程序在我程序运行之前已经执行了,并不允许我去调用 修改后台程序该那些输出到文件中,如使用Log4j等:)也可以考虑使用管道流PipeInputStream,PipeOutputStream。 如何用JAVA调用系统的notepad,并写入一行文字? 一个基于有向无环(DAG)图的规则实现的问题 二次搜索问题 关于处理数值的范围,数值分组。 两个文本框读取文本 帮我讲讲组成优于继承 高内聚低耦合 要例子 新手求救.... 求教JList事件问题 如何让jdk正确输出中文 运行一个窗口,报出Java(tm) platform se binary已停止工作 的问题 初学者的问题,大家帮忙阿 哪里可以找到jdk中javax的全部源代码?src.zip中好像不全?
接收键盘的输入
BufferedReader stdin =
new BufferedReader(
new InputStreamReader(System.in));
可是在java中System.Out似乎跟当前进程相关。
{ public static void main(String[] args)
{
try
{
String cmd = "ping "; String param = args.length == 1 ? args[0]:"192.168.2.26";
Process child = Runtime.getRuntime().exec( cmd + param ); InputStream child_in = child.getInputStream(); int c;
while ((c = child_in.read()) != -1)
{
System.out.print((char)c);
}
child_in.close();
}catch (IOException e)
{
System.err.println(e);
}
}
}
也可以考虑使用管道流PipeInputStream,PipeOutputStream。