aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/Process.java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-06-15 19:45:34 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-06-15 19:45:34 +0000
commit3e1b181a6785c3b77b1cd877a8f6759efad6cfe8 (patch)
tree6325e924516b02fb0d87553b0923dd855f975914 /libjava/java/lang/Process.java
parent34442f32a2407deff70df24c62713044748caf84 (diff)
downloadgcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.zip
gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.gz
gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.bz2
AbstractMethodError.java: Re-merged with Classpath.
* java/lang/AbstractMethodError.java: Re-merged with Classpath. * java/lang/ArithmeticException.java: Likewise. * java/lang/ArrayIndexOutOfBoundsException.java: Likewise. * java/lang/ArrayStoreException.java: Likewise. * java/lang/Byte.java: Likewise. * java/lang/CharSequence.java: Likewise. * java/lang/ClassCastException.java: Likewise. * java/lang/ClassCircularityError.java: Likewise. * java/lang/ClassFormatError.java: Likewise. * java/lang/CloneNotSupportedException.java: Likewise. * java/lang/Cloneable.java: Likewise. * java/lang/Comparable.java: Likewise. * java/lang/Compiler.java: Likewise. * java/lang/Error.java: Likewise. * java/lang/ExceptionInInitializerError.java: Likewise. * java/lang/IllegalAccessError.java: Likewise. * java/lang/IllegalAccessException.java: Likewise. * java/lang/IllegalArgumentException.java: Likewise. * java/lang/IllegalMonitorStateException.java: Likewise. * java/lang/IllegalStateException.java: Likewise. * java/lang/IllegalThreadStateException.java: Likewise. * java/lang/IncompatibleClassChangeError.java: Likewise. * java/lang/IndexOutOfBoundsException.java: Likewise. * java/lang/InheritableThreadLocal.java: Likewise. * java/lang/InstantiationError.java: Likewise. * java/lang/InstantiationException.java: Likewise. * java/lang/InternalError.java: Likewise. * java/lang/InterruptedException.java: Likewise. * java/lang/LinkageError.java: Likewise. * java/lang/NegativeArraySizeException.java: Likewise. * java/lang/NoClassDefFoundError.java: Likewise. * java/lang/NoSuchFieldError.java: Likewise. * java/lang/NoSuchFieldException.java: Likewise. * java/lang/NoSuchMethodError.java: Likewise. * java/lang/NoSuchMethodException.java: Likewise. * java/lang/NullPointerException.java: Likewise. * java/lang/NumberFormatException.java: Likewise. * java/lang/OutOfMemoryError.java: Likewise. * java/lang/Process.java: Likewise. * java/lang/Runnable.java: Likewise. * java/lang/RuntimePermission.java: Likewise. * java/lang/SecurityException.java: Likewise. * java/lang/Short.java: Likewise. * java/lang/StackOverflowError.java: Likewise. * java/lang/StringIndexOutOfBoundsException.java: Likewise. * java/lang/ThreadDeath.java: Likewise. * java/lang/ThreadLocal.java: Likewise. * java/lang/UnknownError.java: Likewise. * java/lang/UnsatisfiedLinkError.java: Likewise. * java/lang/UnsupportedClassVersionError.java: Likewise. * java/lang/UnsupportedOperationException.java: Likewise. * java/lang/VerifyError.java: Likewise. * java/lang/VirtualMachineError.java: Likewise. * java/lang/reflect/InvocationTargetException.java: Likewise. * java/net/BindException.java: Likewise. * java/net/ConnectException.java: Likewise. * java/net/MalformedURLException.java: Likewise. * java/net/NoRouteToHostException.java: Likewise. * java/net/ProtocolException.java: Likewise. * java/net/SocketException.java: Likewise. * java/net/UnknownHostException.java: Likewise. * java/net/UnknownServiceException.java: Likewise. From-SVN: r54656
Diffstat (limited to 'libjava/java/lang/Process.java')
-rw-r--r--libjava/java/lang/Process.java81
1 files changed, 46 insertions, 35 deletions
diff --git a/libjava/java/lang/Process.java b/libjava/java/lang/Process.java
index d8c5da5..e5df417 100644
--- a/libjava/java/lang/Process.java
+++ b/libjava/java/lang/Process.java
@@ -1,5 +1,5 @@
-/* Process.java - Represent spawned system process.
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Process.java - Represent spawned system process
+ Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -41,71 +41,83 @@ package java.lang;
import java.io.OutputStream;
import java.io.InputStream;
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- */
-
/**
* An instance of a subclass of <code>Process</code> is created by the
* <code>Runtime.exec</code> methods. Methods in <code>Process</code>
- * provide a means to send input to a process, obtain the output from a
- * subprocess, destroy a subprocess, obtain the exit value from a
+ * provide a means to send input to a process, obtain the output from a
+ * subprocess, destroy a subprocess, obtain the exit value from a
* subprocess, and wait for a subprocess to complete.
- *
- * @since JDK 1.0
- *
+ *
+ * <p>This is dependent on the platform, and some processes (like native
+ * windowing processes, 16-bit processes in Windows, or shell scripts) may
+ * be limited in functionality. Because some platforms have limited buffers
+ * between processes, you may need to provide input and read output to prevent
+ * the process from blocking, or even deadlocking.
+ *
+ * <p>Even if all references to this object disapper, the process continues
+ * to execute to completion. There are no guarantees that the
+ * subprocess execute asynchronously or concurrently with the process which
+ * owns this object.
+ *
* @author Brian Jones
* @author Tom Tromey <tromey@cygnus.com>
+ * @see Runtime#exec(String[], String[], File)
+ * @since 1.0
+ * @status updated to 1.4
*/
public abstract class Process
{
/**
* Empty constructor does nothing.
*/
- public Process() { }
+ public Process()
+ {
+ }
/**
- * Obtain the output stream of the subprocess. It may help to
- * associate this stream as the redirected STDIN file descriptor of
- * the subprocess.
+ * Obtain the output stream that sends data to the subprocess. This is
+ * the STDIN of the subprocess. When implementing, you should probably
+ * use a buffered stream.
+ *
+ * @return the output stream that pipes to the process input
*/
public abstract OutputStream getOutputStream();
/**
- * Obtain the input stream of the subprocess. It may help to
- * associate this stream as the redirected STDOUT file descriptor of
- * the subprocess.
+ * Obtain the input stream that receives data from the subprocess. This is
+ * the STDOUT of the subprocess. When implementing, you should probably
+ * use a buffered stream.
+ *
+ * @return the input stream that pipes data from the process output
*/
public abstract InputStream getInputStream();
/**
- * Obtain the error input stream of the subprocess. It may help to
- * associate this stream as the redirected STDERR file descriptor of
- * the subprocess.
+ * Obtain the input stream that receives data from the subprocess. This is
+ * the STDERR of the subprocess. When implementing, you should probably
+ * use a buffered stream.
+ *
+ * @return the input stream that pipes data from the process error output
*/
public abstract InputStream getErrorStream();
/**
* The thread calling <code>waitFor</code> will block until the subprocess
- * has terminated. If the process has already terminated then the method
+ * has terminated. If the process has already terminated then the method
* immediately returns with the exit value of the subprocess.
- *
- * @returns the exit value of the subprocess. A return of <code>0</code>
- * denotes normal process termination by convention.
*
- * @throws InterruptedException is thrown if another thread interrupts
- * the waiting thread. The waiting thread stops waiting.
+ * @return the subprocess exit value; 0 conventionally denotes success
+ * @throws InterruptedException if another thread interrups the blocked one
*/
- public abstract int waitFor()
- throws InterruptedException;
+ public abstract int waitFor() throws InterruptedException;
/**
* When a process terminates there is associated with that termination
- * an exit value for the process to indicate why it terminated. A return
+ * an exit value for the process to indicate why it terminated. A return
* of <code>0</code> denotes normal process termination by convention.
*
- * @returns the exit value of the subprocess.
- * @throws IllegalThreadStateException is thrown if the subprocess
- * represented by the subclass of this class has not yet terminated.
+ * @return the exit value of the subprocess
+ * @throws IllegalThreadStateException if the subprocess has not terminated
*/
public abstract int exitValue();
@@ -113,5 +125,4 @@ public abstract class Process
* Kills the subprocess and all of its children forcibly.
*/
public abstract void destroy();
-
-}
+} // class Process