public class Launcher
extends java.lang.Object
An optional LaunchHandler can be specified that is notified of warning and error condition while launching and that indicates whether a launch may proceed after a warning has occurred. If specified, the LaunchHandler is notified regardless of whether the file is launched in the foreground or background.
Constructor and Description |
---|
Launcher(boolean exitOnFailure)
Create a launcher with the runtime's default update policy
and launch handler.
|
Modifier and Type | Method and Description |
---|---|
protected AppletInstance |
createApplet(JNLPFile file,
boolean enableCodeBase,
java.awt.Container cont)
Create an AppletInstance.
|
protected java.applet.Applet |
createAppletObject(JNLPFile file,
boolean enableCodeBase,
java.awt.Container cont)
Creates an Applet object from a JNLPFile.
|
protected ApplicationInstance |
createApplication(JNLPFile file)
Creates an Application.
|
protected java.lang.ThreadGroup |
createThreadGroup(JNLPFile file)
Create a thread group for the JNLP file.
|
protected ApplicationInstance |
getApplet(JNLPFile file,
boolean enableCodeBase,
java.awt.Container cont)
Gets an ApplicationInstance, but does not launch the applet.
|
UpdatePolicy |
getUpdatePolicy() |
boolean |
isCreateAppContext() |
ApplicationInstance |
launch(JNLPFile file)
Launches a JNLP file by calling the launch method for the
appropriate file type.
|
ApplicationInstance |
launch(JNLPFile file,
java.awt.Container cont)
Launches a JNLP file inside the given container if it is an applet.
|
ApplicationInstance |
launch(java.net.URL location)
Launches a JNLP file by calling the launch method for the
appropriate file type.
|
protected ApplicationInstance |
launchApplet(JNLPFile file,
boolean enableCodeBase,
java.awt.Container cont)
Launches a JNLP applet.
|
protected ApplicationInstance |
launchApplication(JNLPFile file)
Launches a JNLP application.
|
void |
launchExternal(java.util.List<java.lang.String> vmArgs,
JNLPFile file,
java.util.List<java.lang.String> javawsArgs)
Launches the JNLP file in a new JVM instance.
|
void |
launchExternal(java.util.List<java.lang.String> vmArgs,
java.util.List<java.lang.String> javawsArgs)
Launches the JNLP file at the specified location in a new JVM
instance.
|
void |
launchExternal(java.net.URL url)
Launches the JNLP file in a new JVM instance.
|
protected ApplicationInstance |
launchInstaller(JNLPFile file)
Launches a JNLP installer.
|
void |
setCreateAppContext(boolean context)
Sets whether to launch the application in a new AppContext
(a separate event queue, look and feel, etc).
|
void |
setInformationToMerge(java.util.Map<java.lang.String,java.util.List<java.lang.String>> input)
Set a map to use when trying to extract extra information, including
arguments, properties and parameters, to be merged into the main JNLP
|
void |
setParserSettings(ParserSettings settings) |
void |
setUpdatePolicy(UpdatePolicy policy)
Sets the update policy used by launched applications.
|
public Launcher(boolean exitOnFailure)
exitOnFailure
- Exit if there is an error (usually default, but false when being used from the plugin)public void setUpdatePolicy(UpdatePolicy policy)
policy
- to be used for resourcespublic UpdatePolicy getUpdatePolicy()
public void setCreateAppContext(boolean context)
context
- appcontext to be setpublic boolean isCreateAppContext()
public void setParserSettings(ParserSettings settings)
settings
- the parser settings to use when the Launcher initiates parsing of
a JNLP file.public void setInformationToMerge(java.util.Map<java.lang.String,java.util.List<java.lang.String>> input)
input
- a map containing extra information to add to the main JNLP.
the values for keys "arguments", "parameters", and "properties" are
used.public ApplicationInstance launch(JNLPFile file) throws LaunchException
file
- the JNLP file to launchLaunchException
- if an error occurred while launching (also sent to handler)public ApplicationInstance launch(JNLPFile file, java.awt.Container cont) throws LaunchException
file
- the JNLP file to launchcont
- the container in which to place the application, if it is an appletLaunchException
- if an error occurred while launching (also sent to handler)public ApplicationInstance launch(java.net.URL location) throws LaunchException
location
- the URL of the JNLP file to launch
location to get the pristine versionLaunchException
- if there was an exceptionpublic void launchExternal(java.util.List<java.lang.String> vmArgs, JNLPFile file, java.util.List<java.lang.String> javawsArgs) throws LaunchException
vmArgs
- the arguments to pass to the new JVM. Can be empty but
must not be null.file
- the JNLP file to launchjavawsArgs
- the arguments to pass to the javaws command. Can be
an empty list but must not be null.LaunchException
- if there was an exceptionpublic void launchExternal(java.net.URL url) throws LaunchException
url
- the URL of the JNLP file to launchLaunchException
- if there was an exceptionpublic void launchExternal(java.util.List<java.lang.String> vmArgs, java.util.List<java.lang.String> javawsArgs) throws LaunchException
vmArgs
- the arguments to pass to the jvmjavawsArgs
- the arguments to pass to javaws (aka Netx)LaunchException
- if there was an exceptionprotected ApplicationInstance launchApplication(JNLPFile file) throws LaunchException
file
- jnlpfile - source of applicationLaunchException
- if launch fails on unrecoverable exceptionprotected ApplicationInstance launchApplet(JNLPFile file, boolean enableCodeBase, java.awt.Container cont) throws LaunchException
The enableCodeBase parameter adds the applet's codebase to the locations searched for resources and classes. This can slow down the applet loading but allows browser-style applets that don't use JAR files exclusively to be run from a applet JNLP file. If the applet JNLP file does not specify any resources then the code base will be enabled regardless of the specified value.
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put applicationLaunchException
- if deploy unrecoverably dieprotected ApplicationInstance getApplet(JNLPFile file, boolean enableCodeBase, java.awt.Container cont) throws LaunchException
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put appletLaunchException
- if deploy unrecoverably dieprotected ApplicationInstance launchInstaller(JNLPFile file) throws LaunchException
file
- jnlp file to read installer fromLaunchException
- if deploy unrecoverably dieprotected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, java.awt.Container cont) throws LaunchException
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put appletLaunchException
- if deploy unrecoverably dieprotected java.applet.Applet createAppletObject(JNLPFile file, boolean enableCodeBase, java.awt.Container cont) throws LaunchException
file
- the PluginBridge to be used.enableCodeBase
- whether to add the code base URL to the classloader.cont
- container where to put appletLaunchException
- if deploy unrecoverably dienprotected ApplicationInstance createApplication(JNLPFile file) throws LaunchException
file
- the JNLP fileLaunchException
- if deploy unrecoverably dieprotected java.lang.ThreadGroup createThreadGroup(JNLPFile file)
file
- the JNLP file
Note: if the JNLPFile is an applet (ie it is a subclass of PluginBridge)
then this method simply returns the existing ThreadGroup. The applet
ThreadGroup has to be created at an earlier point in the applet code.