请达人指点

zzx87570191 2007-09-12 11:00:32
package 进程间的通信;
import java.io.*;

public class MainProcess implements Runnable{
Process p=null;
/** Creates a new instance of MainProcess */
public MainProcess()
{
//new Thread(this).start();
try
{
p=Runtime.getRuntime().exec("java ChildProcess");
}
catch(Exception e)
{
e.printStackTrace();
}
new Thread(this).start();
}
public void run()
{

InputStream ism=p.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(ism));
try
{
while(true)
{
String str=br.readLine();
System.out.println(str+":");
}

// br.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
MainProcess mp=new MainProcess();
}
}


//下面是子进程代码
package 进程间的通信;

import java.io.*;
public class ChildProcess {

/** Creates a new instance of ProcessTest */
public static void main (String args[])
{
while(true)
{
System.out.print("communication\n");
}
}

}//为什么读取到的内容为null,而不是communication
...全文
170 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SkyAPI_COM 2007-09-13
  • 打赏
  • 举报
回复
String line=null;
while((line = br.readLine()) != null)
System.out.println(line);

读数据用这个读,不然你还是显示null
飞鸟0922 2007-09-12
  • 打赏
  • 举报
回复
你是在IDE工具里运行的吧?
这样在执行p=Runtime.getRuntime().exec("java ChildProcess")
是找不到ChildProcess.calss的,所以执行结果为null
你把代码拷到才C盘下,在命令行中执行C:\>java 进程间的通信(packageName).MainProcess
就可以了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧