com.ibm.wala.util.processes
Class JavaLauncher

java.lang.Object
  extended by com.ibm.wala.util.processes.Launcher
      extended by com.ibm.wala.util.processes.JavaLauncher

public class JavaLauncher
extends Launcher

A Java process launcher


Field Summary
 
Fields inherited from class com.ibm.wala.util.processes.Launcher
env, stdErr, stdOut, workingDir
 
Method Summary
static java.lang.String defaultJavaExe()
           
 java.lang.String getJavaExe()
           
 java.lang.Process getLastProcess()
           
 java.lang.String getMainClass()
           
 java.lang.String getProgramArgs()
           
 java.lang.String getVmArgs()
           
 java.util.List<java.lang.String> getXtraClassPath()
           
 boolean isEnableAssertions()
           
 void join()
          Wait for the spawned process to terminate.
static JavaLauncher make(java.lang.String programArgs, java.lang.String mainClass, boolean inheritClasspath, java.util.List<java.lang.String> classpathEntries, boolean captureOutput, boolean captureErr, java.util.logging.Logger logger)
           
static JavaLauncher make(java.lang.String programArgs, java.lang.String mainClass, java.util.List<java.lang.String> classpathEntries, java.util.logging.Logger logger)
           
static java.lang.String quoteStringIfNeeded(java.lang.String s)
          If the input string contains a space, quote it (for use as a classpath).
 void setEnableAssertions(boolean enableAssertions)
           
 void setJavaExe(java.lang.String javaExe)
           
 void setProgramArgs(java.lang.String s)
           
 void setVmArgs(java.lang.String vmArgs)
           
 java.lang.Process start()
          Launch the java process.
 java.lang.String toString()
           
 
Methods inherited from class com.ibm.wala.util.processes.Launcher
captureStdErr, captureStdOut, drainStdErr, drainStdOut, getEnv, getInput, getStderr, getStdOut, getWorkingDir, isCaptureErr, isCaptureOutput, setEnv, setInput, setStdErr, setStdOut, setWorkingDir, spawnProcess
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

make

public static JavaLauncher make(java.lang.String programArgs,
                                java.lang.String mainClass,
                                java.util.List<java.lang.String> classpathEntries,
                                java.util.logging.Logger logger)
Parameters:
programArgs - arguments to be passed to the Java program
mainClass - Declaring class of the main() method to run.
classpathEntries - Paths that will be added to the default classpath

make

public static JavaLauncher make(java.lang.String programArgs,
                                java.lang.String mainClass,
                                boolean inheritClasspath,
                                java.util.List<java.lang.String> classpathEntries,
                                boolean captureOutput,
                                boolean captureErr,
                                java.util.logging.Logger logger)
Parameters:
programArgs - arguments to be passed to the Java program
mainClass - Declaring class of the main() method to run.
inheritClasspath - Should the spawned process inherit all classpath entries of the currently running process?
classpathEntries - Paths that will be added to the default classpath
captureOutput - should the launcher capture the stdout from the subprocess?
captureErr - should the launcher capture the stderr from the subprocess?

getJavaExe

public java.lang.String getJavaExe()

setJavaExe

public void setJavaExe(java.lang.String javaExe)

setProgramArgs

public void setProgramArgs(java.lang.String s)

getProgramArgs

public java.lang.String getProgramArgs()

getMainClass

public java.lang.String getMainClass()

getXtraClassPath

public java.util.List<java.lang.String> getXtraClassPath()

toString

public java.lang.String toString()
Overrides:
toString in class Launcher

defaultJavaExe

public static java.lang.String defaultJavaExe()
Returns:
the string that identifies the java executable file

start

public java.lang.Process start()
                        throws java.lang.IllegalArgumentException,
                               java.io.IOException
Launch the java process.

Throws:
java.lang.IllegalArgumentException
java.io.IOException

getLastProcess

public java.lang.Process getLastProcess()

join

public void join()
Wait for the spawned process to terminate.

Throws:
java.lang.IllegalStateException - if the process has not been started

quoteStringIfNeeded

public static java.lang.String quoteStringIfNeeded(java.lang.String s)
If the input string contains a space, quote it (for use as a classpath). TODO: Figure out how to make a Mac happy with quotes. Trailing separators are unsafe, so we have to escape the last backslash (if present and unescaped), so it doesn't escape the closing quote.


isEnableAssertions

public boolean isEnableAssertions()

setEnableAssertions

public void setEnableAssertions(boolean enableAssertions)

setVmArgs

public void setVmArgs(java.lang.String vmArgs)

getVmArgs

public java.lang.String getVmArgs()