1 package org.sapia.console.examples; 2 3 import org.sapia.console.CmdLine; 4 import org.sapia.console.ExecHandle; 5 6 import java.io.BufferedReader ; 7 import java.io.File ; 8 import java.io.InputStream ; 9 import java.io.InputStreamReader ; 10 11 12 21 public class MainCaller { 22 public static void main(String [] args) { 23 try { 24 CmdLine cmd = new CmdLine(); 25 cmd.addArg("sh") 26 .addArg(System.getProperty("user.dir") + File.separator + 27 "bin/callMain.sh").addArg(System.getProperty("java.home") + 28 "/bin/java").addOpt("cp", "java/classes/").addArg("org.sapia.console.examples.Main"); 29 30 System.out.println("Invoking: " + cmd.toString()); 31 32 ExecHandle handle = cmd.exec(new File (System.getProperty("user.dir")), 33 null); 34 BufferedReader reader = new BufferedReader (new InputStreamReader ( 35 handle.getInputStream())); 36 String pid = reader.readLine(); 37 System.out.println("process ID: " + pid); 38 39 InputStream err = handle.getErrStream(); 40 int count = 0; 41 42 while (err.available() <= 0) { 43 Thread.sleep(200); 44 count++; 45 46 if (count == 2) { 47 break; 48 } 49 } 50 51 if (count == 2) { 52 err.close(); 53 } else { 54 int bytes; 55 byte[] buf = new byte[2000]; 56 StringBuffer data = new StringBuffer (); 57 58 while ((bytes = err.available()) > 0) { 59 bytes = err.read(buf, 0, buf.length); 60 data.append(new String (buf, 0, bytes)); 61 } 62 63 err.close(); 64 65 if (data.length() > 0) { 66 System.out.println("ERROR:"); 67 System.out.println(data.toString()); 68 } 69 } 70 71 reader.close(); 72 } catch (Exception e) { 73 e.printStackTrace(); 74 } 75 } 76 } 77 | Popular Tags |