Class ForkedJvm
java.lang.Object
org.codehaus.mojo.javacc.ForkedJvm
-
Field Summary
FieldsModifier and TypeFieldDescriptionThe class path entries for the forked JVM, given as strings.The command line arguments to pass to themain()
method, given as strings.private final String
The executable used to fork the JVM.private String
The qualified name of the class on which to invoke themain()
method.private org.codehaus.plexus.util.cli.StreamConsumer
The consumer forSystem.err
messages.private org.codehaus.plexus.util.cli.StreamConsumer
The consumer forSystem.out
messages.private File
The working directory for the forked JVM. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addArgument
(File argument) Adds the specified file path to the command line for themain()
method.void
addArgument
(String argument) Adds the specified argument to the command line for themain()
method.void
addArguments
(String[] arguments) Adds the specified arguments to the command line for themain()
method.void
addClassPathEntry
(File path) Adds the specified path to the class path of the forked JVM.void
addClassPathEntry
(Class<?> type) Adds the source JAR of the specified class/interface to the class path of the forked JVM.void
addClassPathEntry
(String path) Adds the specified path to the class path of the forked JVM.private org.codehaus.plexus.util.cli.Commandline
Creates the command line for the new JVM based on the current configuration.private String[]
Gets the command line arguments for themain()
method.private static File
getClassSource
(Class<?> type) Gets the JAR file or directory that contains the specified class.private static File
getClassSource
(String className) Gets the JAR file or directory that contains the specified class.private static String
Gets the absolute path to the JVM executable.private static File
getResourceSource
(String resource, ClassLoader loader) Gets the JAR file or directory that contains the specified resource.int
run()
Forks a JVM using the previously set parameters.void
setMainClass
(Class<?> type) Sets the class on which to invoke themain()
method.void
setMainClass
(String name) Sets the qualified name of the class on which to invoke themain()
method.void
setSystemErr
(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.err
.void
setSystemOut
(org.codehaus.plexus.util.cli.StreamConsumer consumer) Sets the stream consumer used to handle messages fromSystem.out
.void
setWorkingDirectory
(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.out
messages. -
systemErr
private org.codehaus.plexus.util.cli.StreamConsumer systemErrThe consumer forSystem.err
messages. -
executable
The executable used to fork the JVM. -
workingDirectory
The working directory for the forked JVM. -
classPathEntries
-
mainClass
The qualified name of the class on which to invoke themain()
method. -
cmdLineArgs
-
-
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 benull
to 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 benull
to 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 benull
to discard the output.
-
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
-
getClassSource
-
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
null
if 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
-
toString
-