KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > console > examples > MainCaller


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 JavaDoc;
7 import java.io.File JavaDoc;
8 import java.io.InputStream JavaDoc;
9 import java.io.InputStreamReader JavaDoc;
10
11
12 /**
13  * @author Yanick Duchesne
14  *
15  * <dl>
16  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2004 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
17  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
18  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
19  * </dl>
20  */

21 public class MainCaller {
22   public static void main(String JavaDoc[] 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 JavaDoc(System.getProperty("user.dir")),
33           null);
34       BufferedReader JavaDoc reader = new BufferedReader JavaDoc(new InputStreamReader JavaDoc(
35             handle.getInputStream()));
36       String JavaDoc pid = reader.readLine();
37       System.out.println("process ID: " + pid);
38
39       InputStream JavaDoc 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 JavaDoc data = new StringBuffer JavaDoc();
57
58         while ((bytes = err.available()) > 0) {
59           bytes = err.read(buf, 0, buf.length);
60           data.append(new String JavaDoc(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 JavaDoc e) {
73       e.printStackTrace();
74     }
75   }
76 }
77
Popular Tags