# 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

Modifier and Type
Method
Description
`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 Details

### 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