Mercurial > hg > Members > nobuyasu > TestJava
view src/msgpack/test/ForkTestMsgPack.java @ 0:d86770305c8b draft
add TestJava
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 11 May 2012 02:30:59 +0900 |
parents | |
children | 830afc6475b0 |
line wrap: on
line source
package msgpack.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class ForkTestMsgPack { private static InputStream in = null; private static InputStream ein = null; static BufferedReader ebr = null; static BufferedReader br = null; public static void main(String[] args) { String[] cmd = { "/usr/bin/java","Hello"}; Runtime run = Runtime.getRuntime(); try { Process p = run.exec(cmd); in = p.getInputStream(); ein = p.getErrorStream(); Runnable inputStreamThread = new Runnable() { public void run() { String line; try { System.out.println("Thread stdRun start"); br = new BufferedReader(new InputStreamReader(in)); while ((line = br.readLine()) != null) { System.out.println(line); } System.out.println("Thread stdRun end"); } catch (Exception e) { e.printStackTrace(); } } }; Runnable errStreamThread = new Runnable() { public void run() { try { System.out.println("Thread errRun start"); ebr = new BufferedReader(new InputStreamReader(ein)); String errLine; while ((errLine = ebr.readLine()) != null) { System.out.println(errLine); } } catch (Exception e) { e.printStackTrace(); } } }; Thread stdRun = new Thread(inputStreamThread); Thread errRun = new Thread(errStreamThread); stdRun.start(); errRun.start(); int c = p.waitFor(); stdRun.join(); errRun.join(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } finally { try { in.close(); ein.close(); } catch (IOException e) { e.printStackTrace(); } } } }