public final class JavaRuntime
extends java.lang.Object
"org.eclipse.wst.jsdt.launching.vmType"
extension point.
As well, this class provides VM install change notification,
and computes includepaths and source lookup paths for launch
configurations.
This class provides static methods only; it is not intended to be instantiated or subclassed by clients.
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.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTR_CMDLINE
Deprecated.
- use
IProcess.ATTR_CMDLINE |
static java.lang.String |
BASE_BROWSER_LIB |
static java.lang.String |
CLASSPATH_ATTR_LIBRARY_PATH_ENTRY
Attribute key for a includepath attribute referencing a
list of shared libraries that should appear on the
-Djava.library.path system property. |
static int |
DEF_CONNECT_TIMEOUT
Default launch/connect timeout (ms).
|
static java.lang.String |
DEFAULT_SUPER_TYPE |
static java.lang.String |
DEFAULT_SUPER_TYPE_LIBRARY |
static int |
ERR_UNABLE_TO_RESOLVE_JRE
A status code indicating that a JRE could not be resolved for a project.
|
static java.lang.String |
EXTENSION_POINT_EXECUTION_ENVIRONMENTS
Simple identifier constant (value
"executionEnvironments" ) for the
execution environments extension point. |
static java.lang.String |
EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRY_RESOLVERS
Simple identifier constant (value
"runtimeClasspathEntryResolvers" ) for the
runtime includepath entry resolvers extension point. |
static java.lang.String |
EXTENSION_POINT_RUNTIME_CLASSPATH_PROVIDERS
Simple identifier constant (value
"classpathProviders" ) for the
runtime includepath providers extension point. |
static java.lang.String |
EXTENSION_POINT_VM_INSTALLS
Simple identifier constant (value
"vmInstalls" ) for the
VM installs extension point. |
static java.lang.String |
JRE_CONTAINER
Classpath container used for a project's JRE
(value
"org.eclipse.wst.jsdt.launching.JRE_CONTAINER" ). |
static java.lang.String |
JRELIB_VARIABLE
Classpath variable name used for the default JRE's library
(value
"JRE_LIB" ). |
static java.lang.String |
JRESRC_VARIABLE
Classpath variable name used for the default JRE's library source
(value
"JRE_SRC" ). |
static java.lang.String |
JRESRCROOT_VARIABLE
Classpath variable name used for the default JRE's library source root
(value
"JRE_SRCROOT" ). |
static java.lang.String |
PREF_CONNECT_TIMEOUT
Preference key for launch/connect timeout.
|
static java.lang.String |
PREF_VM_XML
Preference key for the String of XML that defines all installed VMs.
|
Modifier and Type | Method and Description |
---|---|
static void |
addContainerResolver(IRuntimeClasspathEntryResolver resolver,
java.lang.String containerIdentifier)
Registers the given resolver for the specified container.
|
static java.lang.String[] |
computeDefaultRuntimeClassPath(IJavaScriptProject jproject)
Computes the default application includepath entries for the given
project.
|
static IRuntimeClasspathEntry |
computeJREEntry(ILaunchConfiguration configuration)
Returns a runtime includepath entry identifying the JRE to use when launching the specified
configuration or
null if none is specified. |
static IRuntimeClasspathEntry[] |
computeUnresolvedRuntimeClasspath(IJavaScriptProject project)
Computes and returns the default unresolved runtime includepath for the
given project.
|
static IRuntimeClasspathEntry[] |
computeUnresolvedRuntimeClasspath(ILaunchConfiguration configuration)
Computes and returns the unresolved class path for the given launch configuration.
|
static IVMInstall |
computeVMInstall(ILaunchConfiguration configuration)
Returns the VM install for the given launch configuration.
|
static void |
fireVMAdded(IVMInstall vm)
Notifies all VM install changed listeners of the VM addition
|
static void |
fireVMChanged(PropertyChangeEvent event)
Notifies all VM install changed listeners of the given property change.
|
static void |
fireVMRemoved(IVMInstall vm)
Notifies all VM install changed listeners of the VM removal
|
static java.lang.String |
getCompositeIdFromVM(IVMInstall vm)
Returns a String that uniquely identifies the specified VM across all VM types.
|
static IIncludePathEntry |
getDefaultJREContainerEntry()
Creates and returns a includepath entry describing
the default JRE container entry.
|
static IVMInstall |
getDefaultVMInstall()
Return the default VM set with
setDefaultVM() . |
static java.lang.String |
getExecutionEnvironmentId(IPath jreContainerPath)
Returns the execution environment identifier in the following JRE
includepath container path, or
null if none. |
static IJavaScriptProject |
getJavaProject(ILaunchConfiguration configuration)
Return the
IJavaScriptProject referenced in the specified configuration or
null if none. |
static LibraryLocation[] |
getLibraryLocations(IVMInstall vm)
Evaluates library locations for a IVMInstall.
|
static Preferences |
getPreferences()
Returns the preference store for the launching plug-in.
|
static IVMInstall |
getVMFromCompositeId(java.lang.String idString)
Return the VM corresponding to the specified composite Id.
|
static IVMInstall |
getVMInstall(IJavaScriptProject project)
Returns the VM assigned to build the given JavaScript project.
|
static IVMInstall |
getVMInstall(IPath jreContainerPath)
Returns the JRE referenced by the specified JRE includepath container
path or
null if none. |
static IVMInstallType |
getVMInstallType(java.lang.String id)
Returns the VM install type with the given unique id.
|
static IVMInstallType[] |
getVMInstallTypes()
Returns the list of registered VM types.
|
static IRuntimeClasspathEntry |
newArchiveRuntimeClasspathEntry(IPath path)
Returns a new runtime includepath entry for the given archive (possibly
external).
|
static IRuntimeClasspathEntry |
newArchiveRuntimeClasspathEntry(IResource resource)
Returns a new runtime includepath entry for the given archive.
|
static IPath |
newDefaultJREContainerPath()
Returns a path for the JRE includepath container identifying the
default VM install.
|
static IPath |
newJREContainerPath(IVMInstall vm)
Returns a path for the JRE includepath container identifying the
specified VM install by type and name.
|
static IPath |
newJREContainerPath(java.lang.String typeId,
java.lang.String name)
Returns a path for the JRE includepath container identifying the
specified VM install by type and name.
|
static IRuntimeClasspathEntry |
newProjectRuntimeClasspathEntry(IJavaScriptProject project)
Returns a new runtime includepath entry for the given project.
|
static IRuntimeClasspathEntry |
newRuntimeClasspathEntry(java.lang.String memento)
Returns a runtime includepath entry constructed from the given memento.
|
static IRuntimeClasspathEntry |
newRuntimeContainerClasspathEntry(IPath path,
int classpathProperty)
Returns a runtime includepath entry for the given container path with the given
includepath property.
|
static IRuntimeClasspathEntry |
newRuntimeContainerClasspathEntry(IPath path,
int classpathProperty,
IJavaScriptProject project)
Returns a runtime includepath entry for the given container path with the given
includepath property to be resolved in the context of the given JavaScript project.
|
static IRuntimeClasspathEntry |
newVariableRuntimeClasspathEntry(IPath path)
Returns a new runtime includepath entry for the includepath
variable with the given path.
|
static IRuntimeClasspathEntry[] |
resolveRuntimeClasspath(IRuntimeClasspathEntry[] entries,
ILaunchConfiguration configuration)
Resolves the given includepath, returning the resolved includepath
in the context of the given launch configuration.
|
static IRuntimeClasspathEntry[] |
resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry,
ILaunchConfiguration configuration)
Returns resolved entries for the given entry in the context of the given
launch configuration.
|
static void |
savePreferences()
Saves the preferences for the launching plug-in.
|
static void |
saveVMConfiguration()
Saves the VM configuration information to the preferences.
|
static void |
setDefaultVMInstall(IVMInstall vm,
IProgressMonitor monitor)
Sets a VM as the system-wide default VM, and notifies registered VM install
change listeners of the change.
|
static void |
setDefaultVMInstall(IVMInstall vm,
IProgressMonitor monitor,
boolean savePreference)
Sets a VM as the system-wide default VM, and notifies registered VM install
change listeners of the change.
|
public static final java.lang.String JRELIB_VARIABLE
"JRE_LIB"
).public static final java.lang.String JRESRC_VARIABLE
"JRE_SRC"
).public static final java.lang.String JRESRCROOT_VARIABLE
"JRE_SRCROOT"
).public static final java.lang.String EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRY_RESOLVERS
"runtimeClasspathEntryResolvers"
) for the
runtime includepath entry resolvers extension point.public static final java.lang.String EXTENSION_POINT_RUNTIME_CLASSPATH_PROVIDERS
"classpathProviders"
) for the
runtime includepath providers extension point.public static final java.lang.String EXTENSION_POINT_EXECUTION_ENVIRONMENTS
"executionEnvironments"
) for the
execution environments extension point.public static final java.lang.String EXTENSION_POINT_VM_INSTALLS
"vmInstalls"
) for the
VM installs extension point.public static final java.lang.String JRE_CONTAINER
"org.eclipse.wst.jsdt.launching.JRE_CONTAINER"
). A
container is resolved in the context of a specific JavaScript project, to one
or more system libraries contained in a JRE. The container can have zero
or two path segments following the container name. When no segments
follow the container name, the workspace default JRE is used to build a
project. Otherwise the segments identify a specific JRE used to build a
project:
IBM 1.3.1
. This information is
shared in a projects includepath file, so teams must agree on JRE naming
conventions.Since 3.2, the path may also identify an execution environment as follows:
executionEnvironments
)public static final java.lang.String BASE_BROWSER_LIB
public static final java.lang.String DEFAULT_SUPER_TYPE
public static final java.lang.String DEFAULT_SUPER_TYPE_LIBRARY
public static final int ERR_UNABLE_TO_RESOLVE_JRE
source
object provided
to the status handler is the JavaScript project for which the path could not be
resolved. The status handler must return an IVMInstall
or null
.
The container resolver will re-set the project's includepath if required.public static final java.lang.String PREF_CONNECT_TIMEOUT
public static final java.lang.String PREF_VM_XML
public static final int DEF_CONNECT_TIMEOUT
public static final java.lang.String ATTR_CMDLINE
IProcess.ATTR_CMDLINE
org.eclipse.debug.core.model.IProcess
allows attaching
String properties to processes.
The value of this attribute is the command line a process
was launched with. Implementers of IVMRunner
should use
this attribute key to attach the command lines to the processes they create.public static final java.lang.String CLASSPATH_ATTR_LIBRARY_PATH_ENTRY
-Djava.library.path
system property.
The factory methods newLibraryPathsAttribute(String[])
and getLibraryPaths(IIncludePathAttribute)
should be used to
encode and decode the attribute value.
Each string is used to create an IPath
using the constructor
Path(String)
, and may contain IStringVariable
's.
Variable substitution is performed on the string prior to constructing
a path from the string.
If the resulting IPath
is a relative path, it is interpreted
as relative to the workspace location. If the path is absolute, it is
interpreted as an absolute path in the local file system.
IIncludePathAttribute
,
Constant Field Valuespublic static IVMInstall getVMInstall(IJavaScriptProject project) throws CoreException
project
- the project to retrieve the VM fromnull
if no VM is referenced on the project's build path.CoreException
- if unable to determine the project's VM installpublic static IVMInstallType getVMInstallType(java.lang.String id)
id
- the VM install type unique idnull
if no
VM install type with the given id is registered.public static void setDefaultVMInstall(IVMInstall vm, IProgressMonitor monitor) throws CoreException
vm
- The vm to make the default. May be null
to clear
the default.monitor
- progress monitor or null
CoreException
public static void setDefaultVMInstall(IVMInstall vm, IProgressMonitor monitor, boolean savePreference) throws CoreException
vm
- The vm to make the default. May be null
to clear
the default.monitor
- progress monitor or null
savePreference
- If true
, update workbench preferences to reflect
the new default VM.CoreException
public static IVMInstall getDefaultVMInstall()
setDefaultVM()
.null
when no default
VM was set or when the default VM has been disposed.public static IVMInstallType[] getVMInstallTypes()
"org.eclipse.wst.jsdt.launching.vmTypes"
extension point.
Returns an empty list if there are no registered VM types.public static java.lang.String getCompositeIdFromVM(IVMInstall vm)
vm
- the instance of IVMInstallType to be identifiedpublic static IVMInstall getVMFromCompositeId(java.lang.String idString)
idString
- the composite id that specifies an instance of IVMInstallpublic static IRuntimeClasspathEntry newProjectRuntimeClasspathEntry(IJavaScriptProject project)
project
- JavaScript projectpublic static IRuntimeClasspathEntry newArchiveRuntimeClasspathEntry(IResource resource)
resource
- archive resourcepublic static IRuntimeClasspathEntry newArchiveRuntimeClasspathEntry(IPath path)
path
- absolute path to an archivepublic static IRuntimeClasspathEntry newVariableRuntimeClasspathEntry(IPath path)
path
- variable path; first segment is the name of the variable;
trailing segments are appended to the resolved variable valuepublic static IRuntimeClasspathEntry newRuntimeContainerClasspathEntry(IPath path, int classpathProperty) throws CoreException
path
- container pathincludepathProperty
- the type of entry - one of USER_CLASSES
,
BOOTSTRAP_CLASSES
, or STANDARD_CLASSES
CoreException
- if unable to construct a runtime includepath entrypublic static IRuntimeClasspathEntry newRuntimeContainerClasspathEntry(IPath path, int classpathProperty, IJavaScriptProject project) throws CoreException
path
- container pathincludepathProperty
- the type of entry - one of USER_CLASSES
,
BOOTSTRAP_CLASSES
, or STANDARD_CLASSES
project
- JavaScript project context used for resolution, or null
if to be resolved in the context of the launch configuration this entry
is referenced inCoreException
- if unable to construct a runtime includepath entrypublic static IRuntimeClasspathEntry newRuntimeClasspathEntry(java.lang.String memento) throws CoreException
memento
- a memento for a runtime includepath entryCoreException
- if unable to construct a runtime includepath entrypublic static IRuntimeClasspathEntry[] computeUnresolvedRuntimeClasspath(IJavaScriptProject project) throws CoreException
CoreException
- if unable to compute the runtime includepathIRuntimeClasspathEntry
public static IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, ILaunchConfiguration configuration) throws CoreException
VARIABLE
or CONTAINER
, variable and container
resolvers are consulted. If the entry is of kind PROJECT
,
and the associated JavaScript project specifies non-default output locations,
the corresponding output locations are returned. Otherwise, the given
entry is returned.
If the given entry is a variable entry, and a resolver is not registered, the entry itself is returned. If the given entry is a container, and a resolver is not registered, resolved runtime includepath entries are calculated from the associated container includepath entries, in the context of the project associated with the given launch configuration.
entry
- runtime includepath entryconfiguration
- launch configurationCoreException
- if unable to resolveIRuntimeClasspathEntryResolver
public static IRuntimeClasspathEntry[] computeUnresolvedRuntimeClasspath(ILaunchConfiguration configuration) throws CoreException
configuration
- launch configurationCoreException
- if unable to compute the includepathpublic static IRuntimeClasspathEntry[] resolveRuntimeClasspath(IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration) throws CoreException
entries
- unresolved includepathconfiguration
- launch configurationCoreException
- if unable to compute the includepathpublic static IJavaScriptProject getJavaProject(ILaunchConfiguration configuration) throws CoreException
IJavaScriptProject
referenced in the specified configuration or
null
if none.CoreException
- if the referenced JavaScript project does not existpublic static IVMInstall computeVMInstall(ILaunchConfiguration configuration) throws CoreException
ATTR_JRE_CONTAINER_PATH
attribute (since 3.2).ATTR_VM_INSTALL_TYPE
and ATTR_VM_INSTALL_ID
attributes.configuration
- launch configurationCoreException
- if unable to compute a vm installpublic static java.lang.String[] computeDefaultRuntimeClassPath(IJavaScriptProject jproject) throws CoreException
jproject
- The project to compute the includepath forCoreException
- if unable to compute the default includepathpublic static void saveVMConfiguration() throws CoreException
CoreException
public static LibraryLocation[] getLibraryLocations(IVMInstall vm)
public static IIncludePathEntry getDefaultJREContainerEntry()
public static IPath newDefaultJREContainerPath()
public static IPath newJREContainerPath(IVMInstall vm)
vm
- vm installpublic static IPath newJREContainerPath(java.lang.String typeId, java.lang.String name)
typeId
- vm install type identifiername
- vm install namepublic static IVMInstall getVMInstall(IPath jreContainerPath)
null
if none.jreContainerPath
- null
public static java.lang.String getExecutionEnvironmentId(IPath jreContainerPath)
null
if none.jreContainerPath
- includepath container pathnull
public static IRuntimeClasspathEntry computeJREEntry(ILaunchConfiguration configuration) throws CoreException
null
if none is specified. The entry returned represents a
either a includepath variable or includepath container that resolves to a JRE.
The entry is resolved as follows:
ATTR_JRE_CONTAINER_PATH
is present, it is used to create
a includepath container referring to a JRE.ATTR_VM_INSTALL_TYPE
and ATTR_VM_INSTALL_NAME
attributes are present, they are used to create a includepath container.configuration
- null
org.eclipse.core.runtime.CoreException
- if an exception occurs retrieving
attributes from the specified launch configurationCoreException
public static Preferences getPreferences()
public static void savePreferences()
public static void addContainerResolver(IRuntimeClasspathEntryResolver resolver, java.lang.String containerIdentifier)
resolver
- runtime includepath entry resolvercontainerIdentifier
- identifier of the includepath container to register forpublic static void fireVMChanged(PropertyChangeEvent event)
event
- event describing the change.public static void fireVMAdded(IVMInstall vm)
vm
- the VM that has been addedpublic static void fireVMRemoved(IVMInstall vm)
vm
- the VM that has been removedCopyright (c) IBM Corp. and others 2000, 2016. All Rights Reserved.