summaryrefslogtreecommitdiff
path: root/j2kviewer/src/Exec.java
diff options
context:
space:
mode:
Diffstat (limited to 'j2kviewer/src/Exec.java')
-rw-r--r--j2kviewer/src/Exec.java212
1 files changed, 0 insertions, 212 deletions
diff --git a/j2kviewer/src/Exec.java b/j2kviewer/src/Exec.java
deleted file mode 100644
index c8b09abc..00000000
--- a/j2kviewer/src/Exec.java
+++ /dev/null
@@ -1,212 +0,0 @@
-import java.io.*;
-
-// This appears in Core Web Programming from
-// Prentice Hall Publishers, and may be freely used
-// or adapted. 1997 Marty Hall, hall@apl.jhu.edu.
-
-/** A class that eases the pain of running external
- * processes from applications.
- * Lets you run a program three ways:
- * <OL>
- * <LI><B>exec</B>: Execute the command, returning
- * immediately even if the command is still
- * running. This would be appropriate
- * for printing a file.
- * <LI><B>execWait</B>: Execute the command, but
- * don't return until the command finishes.
- * This would be appropriate for
- * sequential commands where the first depends
- * on the second having finished (e.g.
- * <CODE>javac</CODE> followed by
- * <CODE>java</CODE>).
- * <LI><B>execPrint</B>: Execute the command and
- * print the output. This would be appropriate
- * for the UNIX command <CODE>ls</CODE>.
- * </OL>
- * Note that the PATH is not taken into account,
- * so you must specify the <B>full</B> pathname to
- * the command, and shell builtin commands
- * will not work. For instance, on Unix the above
- * three examples might look like:
- * <OL>
- * <LI><PRE>Exec.exec("/usr/ucb/lpr Some-File");</PRE>
- * <LI><PRE>
- * Exec.execWait("/usr/local/bin/javac Foo.java");
- * Exec.execWait("/usr/local/bin/java Foo");
- * </PRE>
- * <LI><PRE>Exec.execPrint("/usr/bin/ls -al");</PRE>
- * </OL>
- *
- * @author Marty Hall
- * (<A HREF="mailto:hall@apl.jhu.edu">
- * hall@apl.jhu.edu</A>)
- * @version 1.0 1997
- */
-
-public class Exec {
- //----------------------------------------------------
-
- private static boolean verbose = true;
-
- /** Determines if the Exec class should print which
- * commands are being executed, and print error
- * messages if a problem is found. Default is true.
- *
- * @param verboseFlag true: print messages.
- * false: don't.
- */
-
- public static void setVerbose(boolean verboseFlag) {
- verbose = verboseFlag;
- }
-
- /** Will Exec print status messages? */
-
- public static boolean getVerbose() {
- return(verbose);
- }
-
- //----------------------------------------------------
- /** Starts a process to execute the command. Returns
- * immediately, even if the new process is still
- * running.
- *
- * @param command The <B>full</B> pathname of the
- * command to be executed. No shell builtins
- * (e.g. "cd") or shell meta-chars (e.g. ">")
- * allowed.
- * @return false if a problem is known to occur, but
- * since this returns immediately, problems
- * aren't usually found in time.
- * Returns true otherwise.
- */
-
- public static boolean exec(String command) {
- return(exec(command, false, false));
- }
-
- //----------------------------------------------------
- /** Starts a process to execute the command. Waits
- * for the process to finish before returning.
- *
- * @param command The <B>full</B> pathname of the
- * command to be executed. No shell builtins
- * or shell meta-chars allowed.
- * @return false if a problem is known to occur,
- * either due to an exception or from the
- * subprocess returning a non-zero value.
- * Returns true otherwise.
- */
-
- public static boolean execWait(String command) {
- return(exec(command, false, true));
- }
-
- //----------------------------------------------------
- /** Starts a process to execute the command. Prints
- * all output the command gives.
- *
- * @param command The <B>full</B> pathname of the
- * command to be executed. No shell builtins
- * or shell meta-chars allowed.
- * @return false if a problem is known to occur,
- * either due to an exception or from the
- * subprocess returning a non-zero value.
- * Returns true otherwise.
- */
-
- public static boolean execPrint(String command) {
- return(exec(command, true, false));
- }
-
- //----------------------------------------------------
- // This creates a Process object via
- // Runtime.getRuntime.exec(). Depending on the
- // flags, it may call waitFor on the process
- // to avoid continuing until the process terminates,
- // or open an input stream from the process to read
- // the results.
-
- private static boolean exec(String command,
- boolean printResults,
- boolean wait) {
- if (verbose) {
- printSeparator();
- System.out.println("Executing '" + command + "'.");
- }
- try {
- // Start running command, returning immediately.
- Process p = Runtime.getRuntime().exec(command);
-
- // Print the output. Since we read until
- // there is no more input, this causes us
- // to wait until the process is completed
- if(printResults) {
- BufferedInputStream buffer =
- new BufferedInputStream(p.getInputStream());
- DataInputStream commandResult =
- new DataInputStream(buffer);
- String s = null;
- try {
- while ((s = commandResult.readLine()) != null)
- System.out.println("Output: " + s);
- commandResult.close();
- if (p.exitValue() != 0) {
- if (verbose)
- printError(command +
- " -- p.exitValue() != 0");
- return(false);
- }
- // Ignore read errors; they mean process is done
- } catch (Exception e) {}
-
- // If you don't print the results, then you
- // need to call waitFor to stop until the process
- // is completed
- } else if (wait) {
- try {
- System.out.println(" ");
- int returnVal = p.waitFor();
- if (returnVal != 0) {
- if (verbose)
- printError(command);
- return(false);
- }
- } catch (Exception e) {
- if (verbose)
- printError(command, e);
- return(false);
- }
- }
- } catch (Exception e) {
- if (verbose)
- printError(command, e);
- return(false);
- }
- return(true);
- }
-
- //----------------------------------------------------
-
- private static void printError(String command,
- Exception e) {
- System.out.println("Error doing exec(" +
- command + "): " + e.getMessage());
- System.out.println("Did you specify the full " +
- "pathname?");
- }
-
- private static void printError(String command) {
- System.out.println("Error executing '" +
- command + "'.");
- }
-
- //----------------------------------------------------
-
- private static void printSeparator() {
- System.out.println
- ("==============================================");
- }
-
- //----------------------------------------------------
-}