Package org.eclipse.jdt.launching

## Class AbstractVMRunner

- java.lang.Object
- - org.eclipse.jdt.launching.AbstractVMRunner

All Implemented Interfaces:
  `IVMRunner`

    public abstract class AbstractVMRunner
    extends Object
    implements IVMRunner

Abstract implementation of a VM runner.

Clients implementing VM runners should subclass this class.

Since:
  2.0
See Also:
  `IVMRunner`

### Constructor Summary

Constructors
`AbstractVMRunner()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `abort​(String message, Throwable exception, int code)` Throws a core exception with an error status object built from the given message, lower level exception, and error code.
`protected String[]` `combineVmArgs​(VMRunnerConfiguration configuration, IVMInstall vmInstall)` Combines and returns VM arguments specified by the runner configuration, with those specified by the VM install, if any.
`protected Process` `exec​(String[] cmdLine, File workingDirectory)` Executes the given command line using the given working directory
`protected Process` `exec​(String[] cmdLine, File workingDirectory, String[] envp)` Executes the given command line using the given working directory and environment
`protected String` `getCmdLineAsString​(String[] cmdLine)` Returns the given array of strings as a single space-delimited string.
`protected Map<String,​String>` `getDefaultProcessMap()` Returns the default process attribute map for Java processes.
`protected abstract String` `getPluginIdentifier()` Returns the identifier of the plug-in this VM runner originated from.
`protected boolean` `isModular​(VMRunnerConfiguration config, IVMInstall vmInstall)` Examines the project and install for presence of module and execution support.
`protected IProcess` `newProcess​(ILaunch launch, Process p, String label, Map<String,​String> attributes)` Returns a new process aborting if the process could not be created.
`protected static String[]` `quoteWindowsArgs​(String[] cmdLine)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.eclipse.jdt.launching.IVMRunner

`run, showCommandLine`

### Constructor Detail

#### AbstractVMRunner

    public AbstractVMRunner()

### Method Detail

#### abort

    protected void abort​(String message,
                         Throwable exception,
                         int code)
                  throws CoreException

Throws a core exception with an error status object built from the given message, lower level exception, and error code.

Parameters:
  `message` - the status message
  `exception` - lower level exception associated with the error, or `null` if none
  `code` - error code
Throws:
  `CoreException` - The exception encapsulating the reason for the abort

#### getPluginIdentifier

    protected abstract String getPluginIdentifier()

Returns the identifier of the plug-in this VM runner originated from.

Returns:
  plug-in identifier

#### exec

    protected Process exec​(String[] cmdLine,
                           File workingDirectory)
                    throws CoreException

Executes the given command line using the given working directory

Parameters:
  `cmdLine` - the command line
  `workingDirectory` - the working directory
Returns:
  the `Process`
Throws:
  `CoreException` - if the execution fails
See Also:
  `DebugPlugin.exec(String[], File)`

#### exec

    protected Process exec​(String[] cmdLine,
                           File workingDirectory,
                           String[] envp)
                    throws CoreException

Executes the given command line using the given working directory and environment

Parameters:
  `cmdLine` - the command line
  `workingDirectory` - the working directory
  `envp` - the environment
Returns:
  the `Process`
Throws:
  `CoreException` - is the execution fails
Since:
  3.0
See Also:
  `DebugPlugin.exec(String[], File, String[])`

#### quoteWindowsArgs

    protected static String[] quoteWindowsArgs​(String[] cmdLine)

Since:
  3.11

#### getCmdLineAsString

    protected String getCmdLineAsString​(String[] cmdLine)

Returns the given array of strings as a single space-delimited string.

Parameters:
  `cmdLine` - array of strings
Returns:
  a single space-delimited string

#### getDefaultProcessMap

    protected Map<String,​String> getDefaultProcessMap()

Returns the default process attribute map for Java processes.

Returns:
  default process attribute map for Java processes

#### newProcess

    protected IProcess newProcess​(ILaunch launch,
                                  Process p,
                                  String label,
                                  Map<String,​String> attributes)
                           throws CoreException

Returns a new process aborting if the process could not be created.

Parameters:
  `launch` - the launch the process is contained in
  `p` - the system process to wrap
  `label` - the label assigned to the process
  `attributes` - values for the attribute map
Returns:
  the new process
Throws:
  `CoreException` - problems occurred creating the process
Since:
  3.0

#### combineVmArgs

    protected String[] combineVmArgs​(VMRunnerConfiguration configuration,
                                     IVMInstall vmInstall)

Combines and returns VM arguments specified by the runner configuration, with those specified by the VM install, if any.

Parameters:
  `configuration` - runner configuration
  `vmInstall` - VM install
Returns:
  combined VM arguments specified by the runner configuration and VM install
Since:
  3.0

#### isModular

    protected boolean isModular​(VMRunnerConfiguration config,
                                IVMInstall vmInstall)

Examines the project and install for presence of module and execution support.

Parameters:
  `config` - runner configuration
  `vmInstall` - VM install
Returns:
  `true` if project is a module and uses JRE version 9 or more, or `false` otherwise
Since:
  3.10