When a launch configuration launches its program, it is responsible for invoking the executable
program in the requested mode. The implementation for a launch will depend on the specifics of
each launch configuration, but most plug-ins will build a command line and call a runtime exec to start
the program. The
class implements a convenience method for invoking a runtime exec and handling the possible exceptions.
Clients can specify the command line and working directory for the exec.
Process p = DebugPlugin.exec(cmdLine, workingDirectory);
Once the java.lang.Process for the executing program has been created, it needs to be managed by the
debug plug-in. For starters, the process needs to be associated with the
that represents the launched program. The debug plug-in defines a wrapper for a system process,
that allows clients to access the associated
and assign their own named attributes to the process. In addition,
defines a label for the process and associates an
with the process that gives clients access to the input, output, and error streams of the system process. This process wrapper
can also be created using a utility method in
IProcess process= DebugPlugin.newProcess(launch, p, "My Process);
A map of named attributes can also be supplied.
Many plug-ins can simply rely on the utility methods in
for launching the system process and wrapping it in an
For those plug-ins that need more control in the creation of the wrapper, a process factory can be associated with a launch
configuration. The process factory is used to create an
that meets the special needs of the plug-in. The process factory is referenced by id, and should be stored in the
DebugPlugin.ATTR_PROCESS_FACTORY_ID attribute of the launch configuration.
The association between the process factory id and the class that implements it is made using the
The following example shows how the Ant plug-in sets up a process factory for its launches:
It is the responsibility of the registering plug-in to store the process factory id in the proper launch configuration attribute.