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
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
while((line = br.readLine()) != null)
System.out.println(line);读数据用上面的方法读另外 p=Runtime.getRuntime().exec("java ChildProcess"); 路径有错
你用p=Runtime.getRuntime().exec("nslookup -q=mx google.com"); 能看到有输出值~~~
Exception in thread "main" java.lang.NoClassDefFoundError: MainProcess (wrong na
me: ProcessCommunication/MainProcess)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)