Package org.eclipse.jdt.launching

## Interface IVMInstall

All Known Implementing Classes:
  `AbstractVMInstall`, `VMStandin`

    public interface IVMInstall

Represents a particular installation of a VM. A VM instance holds all parameters specific to a VM installation. Unlike VM types, VM instances can be created and configured dynamically at run-time. This is typically done by the user interactively in the UI.

A VM install is responsible for creating VM runners to launch a Java program in a specific mode.

This interface is intended to be implemented by clients that contribute to the `"org.eclipse.jdt.launching.vmInstallTypes"` extension point. Rather than implementing this interface directly, it is strongly recommended that clients subclass `AbstractVMInstall` to be insulated from potential API additions. In 3.1, a new optional interface has been added for implementors of this interface - `IVMInstall2`. The new interface is implemented by `AbstractVMInstall`.

See Also:
  `IVMInstall2`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`String` `getId()` Returns the id for this VM.
`File` `getInstallLocation()` Returns the root directory of the install location of this VM.
`URL` `getJavadocLocation()` Returns the Javadoc location associated with this VM install.
`LibraryLocation[]` `getLibraryLocations()` Returns the library locations of this IVMInstall.
`String` `getName()` Returns the display name of this VM.
`String[]` `getVMArguments()` Returns VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none.
`IVMInstallType` `getVMInstallType()` Returns the VM type of this VM.
`IVMRunner` `getVMRunner​(String mode)` Returns a VM runner that runs this installed VM in the given mode.
`void` `setInstallLocation​(File installLocation)` Sets the root directory of the install location of this VM.
`void` `setJavadocLocation​(URL url)` Sets the Javadoc location associated with this VM install.
`void` `setLibraryLocations​(LibraryLocation[] locations)` Sets the library locations of this IVMInstall.
`void` `setName​(String name)` Sets the display name of this VM.
`void` `setVMArguments​(String[] vmArgs)` Deprecated. if possible, clients should use setVMArgs(String) on `IVMInstall2` when possible

### Method Detail

#### getVMRunner

    IVMRunner getVMRunner​(String mode)

Returns a VM runner that runs this installed VM in the given mode.

Parameters:
  `mode` - the mode the VM should be launched in; one of the constants declared in `org.eclipse.debug.core.ILaunchManager`
Returns:
  a VMRunner for a given mode May return `null` if the given mode is not supported by this VM.
See Also:
  `ILaunchManager`

#### getId

    String getId()

Returns the id for this VM. VM IDs are unique within the VMs of a given VM type. The VM id is not intended to be presented to users.

Returns:
  the VM identifier. Must not return `null`.

#### getName

    String getName()

Returns the display name of this VM. The VM name is intended to be presented to users.

Returns:
  the display name of this VM. May return `null`.

#### setName

    void setName​(String name)

Sets the display name of this VM. The VM name is intended to be presented to users.

Parameters:
  `name` - the display name of this VM

#### getInstallLocation

    File getInstallLocation()

Returns the root directory of the install location of this VM.

Returns:
  the root directory of this VM installation. May return `null`.

#### setInstallLocation

    void setInstallLocation​(File installLocation)

Sets the root directory of the install location of this VM.

Parameters:
  `installLocation` - the root directory of this VM installation

#### getVMInstallType

    IVMInstallType getVMInstallType()

Returns the VM type of this VM.

Returns:
  the VM type that created this IVMInstall instance

#### getLibraryLocations

    LibraryLocation[] getLibraryLocations()

Returns the library locations of this IVMInstall. Generally, clients should use `JavaRuntime.getLibraryLocations(IVMInstall)` to determine the libraries associated with this VM install.

Returns:
  The library locations of this IVMInstall. Returns `null` to indicate that this VM install uses the default library locations associated with this VM's install type.
Since:
  2.0
See Also:
  `setLibraryLocations(LibraryLocation[])`

#### setLibraryLocations

    void setLibraryLocations​(LibraryLocation[] locations)

Sets the library locations of this IVMInstall.

Parameters:
  `locations` - The `LibraryLocation`s to associate with this IVMInstall. May be `null` to indicate that this VM install uses the default library locations associated with this VM's install type.
Since:
  2.0

#### setJavadocLocation

    void setJavadocLocation​(URL url)

Sets the Javadoc location associated with this VM install.

Parameters:
  `url` - a url pointing to the Javadoc location associated with this VM install
Since:
  2.0

#### getJavadocLocation

    URL getJavadocLocation()

Returns the Javadoc location associated with this VM install.

Returns:
  a url pointing to the Javadoc location associated with this VM install, or `null` if none
Since:
  2.0

#### getVMArguments

    String[] getVMArguments()

Returns VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none.

Returns:
  VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none
Since:
  3.0

#### setVMArguments

    @Deprecated
    void setVMArguments​(String[] vmArgs)

Deprecated.
if possible, clients should use setVMArgs(String) on `IVMInstall2` when possible
Sets VM arguments to be used with this vm install whenever this VM is launched, possibly `null`. This is equivalent to `setVMArgs(String)` with whitespace character delimited arguments.

Parameters:
  `vmArgs` - VM arguments to be used with this vm install whenever this VM is launched, possibly `null`
Since:
  3.0