Mercurial > hg > Members > nobuyasu > TestJava
view src/Test/SystemTest.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 Test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class SystemTest { private static InputStream in = null; private static InputStream ein = null; static BufferedReader ebr = null; static BufferedReader br = null; public static void main(String[] argv) { String[] cmd = {"/usr/local/bin/konoha","/Users/aotokage/testProgram/konoha/math.k"}; 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 (Exception e) { e.printStackTrace(); } finally { try { in.close(); ein.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void printInputStream(InputStream in) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(in)); try { for (;;) { String line = br.readLine(); if (line == null) break; System.out.println(line); } } finally { br.close(); } } }