Package org.codehaus.mojo.javacc
Class ForkedJvm
java.lang.Object
org.codehaus.mojo.javacc.ForkedJvm
Runs the
main() method of some tool in a forked JVM.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SetThe class path entries for the forked JVM, given as strings.private ListThe command line arguments to pass to themain()method, given as strings.private StringThe executable used to fork the JVM.private StringThe qualified name of the class on which to invoke themain()method.private org.codehaus.plexus.util.cli.StreamConsumerThe consumer forSystem.errmessages.private org.codehaus.plexus.util.cli.StreamConsumerThe consumer forSystem.outmessages.private FileThe working directory for the forked JVM. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddArgument(File argument) Adds the specified file path to the command line for themain()method.voidaddArgument(String argument) Adds the specified argument to the command line for themain()method.voidaddArguments(String[] arguments) Adds the specified arguments to the command line for themain()method.voidaddClassPathEntry(File path) Adds the specified path to the class path of the forked JVM.voidaddClassPathEntry(Class type) Adds the source JAR of the specified class/interface to the class path of the forked JVM.voidaddClassPathEntry(String path) Adds the specified path to the class path of the forked JVM.private org.codehaus.plexus.util.cli.CommandlineCreates the command line for the new JVM based on the current configuration.private String[]Gets the command line arguments for themain()method.private StringGets the class path for the forked JVM.private static FilegetClassSource(Class type) Gets the JAR file or directory that contains the specified class.private static FilegetClassSource(String className) Gets the JAR file or directory that contains the specified class.private static StringGets the absolute path to the JVM executable.private static FilegetResourceSource(String resource, ClassLoader loader) Gets the JAR file or directory that contains the specified resource.intrun()Forks a JVM using the previously set parameters.voidsetMainClass(Class type) Sets the class on which to invoke themain()method.voidsetMainClass(String name) Sets the qualified name of the class on which to invoke themain()method.voidsetSystemErr(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.err.voidsetSystemOut(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.out.voidsetWorkingDirectory(File directory) Sets the working directory for the forked JVM.toString()Gets a string representation of the command line arguments.
-
Field Details
-
systemOut
private org.codehaus.plexus.util.cli.StreamConsumer systemOutThe consumer forSystem.outmessages. -
systemErr
private org.codehaus.plexus.util.cli.StreamConsumer systemErrThe consumer forSystem.errmessages. -
executable
The executable used to fork the JVM. -
workingDirectory
The working directory for the forked JVM. -
classPathEntries
The class path entries for the forked JVM, given as strings. -
mainClass
The qualified name of the class on which to invoke themain()method. -
cmdLineArgs
The command line arguments to pass to themain()method, given as strings.
-
-
Constructor Details
-
ForkedJvm
public ForkedJvm()Creates a new configuration to fork a JVM.
-
-
Method Details
-
getDefaultExecutable
Gets the absolute path to the JVM executable.- Returns:
- The absolute path to the JVM executable.
-
setWorkingDirectory
Sets the working directory for the forked JVM.- Parameters:
directory- The working directory for the forked JVM, may benullto inherit the working directory of the current JVM.
-
setSystemOut
public void setSystemOut(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.out.- Parameters:
consumer- The stream consumer, may benullto discard the output.
-
setSystemErr
public void setSystemErr(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.err.- Parameters:
consumer- The stream consumer, may benullto discard the output.
-
getClassPath
Gets the class path for the forked JVM.- Returns:
- The class path for the forked JVM.
-
addClassPathEntry
Adds the specified path to the class path of the forked JVM.- Parameters:
path- The path to add, may benull.
-
addClassPathEntry
Adds the specified path to the class path of the forked JVM.- Parameters:
path- The path to add, may benull.
-
addClassPathEntry
Adds the source JAR of the specified class/interface to the class path of the forked JVM.- Parameters:
type- The class/interface to add, may benull.
-
getClassSource
Gets the JAR file or directory that contains the specified class.- Parameters:
type- The class/interface to find, may benull.- Returns:
- The absolute path to the class source location or
nullif unknown.
-
getClassSource
Gets the JAR file or directory that contains the specified class.- Parameters:
className- The qualified name of the class/interface to find, may benull.- Returns:
- The absolute path to the class source location or
nullif unknown.
-
getResourceSource
Gets the JAR file or directory that contains the specified resource.- Parameters:
resource- The absolute name of the resource to find, may benull.loader- The class loader to use for searching the resource, may benull.- Returns:
- The absolute path to the resource location or
nullif unknown.
-
setMainClass
Sets the qualified name of the class on which to invoke themain()method. The source of the specified class will automatically be added to the class path of the forked JVM.- Parameters:
name- The qualified name of the class on which to invoke themain()method.
-
setMainClass
Sets the class on which to invoke themain()method. The source of the specified class will automatically be added to the class path of the forked JVM.- Parameters:
type- The class on which to invoke themain()method, may benull.
-
getArguments
Gets the command line arguments for themain()method.- Returns:
- The command line arguments for the
main()method.
-
addArgument
Adds the specified argument to the command line for themain()method.- Parameters:
argument- The argument to add, may benull.
-
addArgument
Adds the specified file path to the command line for themain()method.- Parameters:
argument- The argument to add, may benull.
-
addArguments
Adds the specified arguments to the command line for themain()method.- Parameters:
arguments- The arguments to add, may benull.
-
createCommandLine
private org.codehaus.plexus.util.cli.Commandline createCommandLine()Creates the command line for the new JVM based on the current configuration.- Returns:
- The command line used to fork the JVM, never
null.
-
run
Forks a JVM using the previously set parameters.- Returns:
- The exit code of the forked JVM.
- Throws:
Exception- If the JVM could not be forked.
-
toString
Gets a string representation of the command line arguments.
-