进程间应用system.out和system.err传递数据

来源:互联网 发布:公司免费记账软件 编辑:程序博客网 时间:2024/05/16 23:32
public class FatherProcess {
    public static void main(String[] args) {        int i =0;        String cmd ="D:\\java_tools\\jdk1.6.0\\bin\\java -Didea.launcher.port=7544 \"-Didea.launcher.bin.path=D:\\Program Files\\JetBrains\\IntelliJ IDEA 11.0.1\\bin\" -Dfile.encoding=UTF-8 -classpath \"D:\\workspace\\thinking\\bin;D:\\java_tools\\jdk1.6.0\\jre\\lib\\alt-rt.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\charsets.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\deploy.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\javaws.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\jce.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\jsse.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\management-agent.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\plugin.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\resources.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\rt.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\ext\\dnsns.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\ext\\localedata.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\ext\\sunjce_provider.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\ext\\sunmscapi.jar;D:\\java_tools\\jdk1.6.0\\jre\\lib\\ext\\sunpkcs11.jar;D:\\Program Files\\JetBrains\\IntelliJ IDEA 11.0.1\\lib\\junit.jar;D:\\Program Files\\JetBrains\\IntelliJ IDEA 11.0.1\\lib\\idea_rt.jar\" com.intellij.rt.execution.application.AppMain thinking.SubProcess";        try {            Process p = Runtime.getRuntime().exec(cmd);            InputStream reader = p.getInputStream();            i = reader.read();            System.out.println(i);            InputStream reader2 = p.getErrorStream();            i = reader2.read();            System.out.println(i);        } catch (IOException e) {            e.printStackTrace();        }    }  }

另一进程的代码如下:

public class SubProcess {    public static void main(String[] args) {        System.out.write(100);        System.out.flush();        System.err.write(50);        System.err.flush();    }}

缺点:可以传递小于256的数字。大于256的数字,溢出。