org.eclipse.wst.jsdt.launching

## Interface IVMInstall

All Known Implementing Classes:
  AbstractVMInstall, StandardVM, 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 JavaScript program in a specific mode.

This interface is intended to be implemented by clients that contribute to the `"org.eclipse.wst.jsdt.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:
  `Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`java.lang.String` `getId()` Returns the id for this VM.
`java.io.File` `getInstallLocation()` Returns the root directory of the install location of this VM.
`java.net.URL` `getJavadocLocation()` Returns the jsdoc location associated with this VM install.
`LibraryLocation[]` `getLibraryLocations()` Returns the library locations of this IVMInstall.
`java.lang.String` `getName()` Returns the display name of this VM.
`java.lang.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(java.lang.String mode)` Returns a VM runner that runs this installed VM in the given mode.
`void` `setInstallLocation(java.io.File installLocation)` Sets the root directory of the install location of this VM.
`void` `setJavadocLocation(java.net.URL url)` Sets the jsdoc location associated with this VM install.
`void` `setLibraryLocations(LibraryLocation[] locations)` Sets the library locations of this IVMInstall.
`void` `setName(java.lang.String name)` Sets the display name of this VM.
`void` `setVMArguments(java.lang.String[] vmArgs)` Deprecated. if possible, clients should use setVMArgs(String) on `IVMInstall2` when possible

### Method Detail

#### getVMRunner

    IVMRunner getVMRunner(java.lang.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:
  `org.eclipse.debug.core.ILaunchManager`

#### getId

    java.lang.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

    java.lang.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(java.lang.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

    java.io.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(java.io.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.
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.

#### setJavadocLocation

    void setJavadocLocation(java.net.URL url)

Sets the jsdoc location associated with this VM install.

Parameters:
  `url` - a url pointing to the jsdoc location associated with this VM install

#### getJavadocLocation

    java.net.URL getJavadocLocation()

Returns the jsdoc location associated with this VM install.

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

#### getVMArguments

    java.lang.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

#### setVMArguments

    void setVMArguments(java.lang.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`