01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: package java.lang;
19:
20: import java.io.InputStream;
21: import java.io.OutputStream;
22:
23: /**
24: * Instances of class Process provide control of and access to platform
25: * processes.
26: */
27: public abstract class Process {
28:
29: /**
30: * Terminates the receiver and closes any associated streams.
31: */
32: abstract public void destroy();
33:
34: /**
35: * Answers the exit value of the receiving Process. It is available only
36: * when the OS subprocess is finished.
37: *
38: * @return The exit value of the receiver.
39: *
40: * @throws IllegalThreadStateException
41: * If the receiver has not terminated.
42: */
43: abstract public int exitValue();
44:
45: /**
46: * Answers the receiver's error output stream.
47: * <p>
48: * Note: This is an InputStream which allows reading of the other threads
49: * "stderr".
50: *
51: * @return The error stream associated with the receiver
52: */
53: abstract public InputStream getErrorStream();
54:
55: /**
56: * Answers the receiver's standard input stream
57: * <p>
58: * Note: This is an InputStream which allows reading from the other process'
59: * "stdout".
60: *
61: * @return The receiver's process' stdin.
62: */
63: abstract public InputStream getInputStream();
64:
65: /**
66: * Answers the receiver's standard output stream
67: * <p>
68: * Note: This is an OutputStream which allows writing to the other process'
69: * "stdin".
70: *
71: * @return The receiver's process' stdout.
72: */
73: abstract public OutputStream getOutputStream();
74:
75: /**
76: * Causes the calling thread to wait for the process associated with the
77: * receiver to finish executing.
78: *
79: * @return The exit value of the Process being waited on
80: *
81: * @throws InterruptedException
82: * If the calling thread is interrupted
83: */
84: abstract public int waitFor() throws InterruptedException;
85: }
|