view src/testKonoha/SystemTest.java @ 3:178aeb91d108 draft default tip

add pom.xml
author one
date Mon, 04 Jun 2012 13:53:39 +0900
parents b101ee77e78c
children
line wrap: on
line source

package testKonoha;

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"};
		String[] cmd = {"/usr/local/bin/konoha","/Users/aotokage/hg/nobuyasu/konoha/http/test/httpRequestTest.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();
		}
	
	}
	
	
}