首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

今生遇到这样的有关问题是小弟我的荣幸

2012-03-02 
今生遇到这样的问题是我的荣幸package进程间的通信importjava.io.*publicclassMainProcessimplementsRun

今生遇到这样的问题是我的荣幸
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



[解决办法]
在eclipse中开始我也不能执行,现在可以了。

p=Runtime.getRuntime().exec( "java packageName.ChildProcess ");
中加上packageName就可以了。
因为在Runtime.getRuntime().exec()中执行java时,是以工程路径为相对路径的(你可以把ChildProcess去掉包放在工程目录下试一试 )。
所以你不加包名的话是找不到ChildProcess的。

热点排行