Package net.sourceforge.jnlp
Class Launcher
java.lang.Object
net.sourceforge.jnlp.Launcher
Launches JNLPFiles either in the foreground or background.
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.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionLauncher
(boolean exitOnFailure) Create a launcher with the runtime's default update policy and launch handler. -
Method Summary
Modifier and TypeMethodDescriptionprotected AppletInstance
createApplet
(JNLPFile file, boolean enableCodeBase, Container cont) Create an AppletInstance.protected Applet
createAppletObject
(JNLPFile file, boolean enableCodeBase, Container cont) Creates an Applet object from a JNLPFile.protected ApplicationInstance
createApplication
(JNLPFile file) Creates an Application.protected ThreadGroup
createThreadGroup
(JNLPFile file) Create a thread group for the JNLP file.protected ApplicationInstance
Gets an ApplicationInstance, but does not launch the applet.boolean
Launches a JNLP file by calling the launch method for the appropriate file type.Launches a JNLP file by calling the launch method for the appropriate file type.Launches a JNLP file inside the given container if it is an applet.protected ApplicationInstance
launchApplet
(JNLPFile file, boolean enableCodeBase, Container cont) Launches a JNLP applet.protected ApplicationInstance
launchApplication
(JNLPFile file) Launches a JNLP application.void
launchExternal
(URL url) Launches the JNLP file in a new JVM instance.void
launchExternal
(List<String> vmArgs, List<String> javawsArgs) Launches the JNLP file at the specified location in a new JVM instance.void
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
(Map<String, List<String>> input) Set a map to use when trying to extract extra information, including arguments, properties and parameters, to be merged into the main JNLPvoid
setParserSettings
(ParserSettings settings) void
setUpdatePolicy
(UpdatePolicy policy) Sets the update policy used by launched applications.
-
Field Details
-
KEY_JAVAWS_LOCATION
- See Also:
-
-
Constructor Details
-
Launcher
public Launcher(boolean exitOnFailure) Create a launcher with the runtime's default update policy and launch handler.- Parameters:
exitOnFailure
- Exit if there is an error (usually default, but false when being used from the plugin)
-
-
Method Details
-
setUpdatePolicy
Sets the update policy used by launched applications.- Parameters:
policy
- to be used for resources
-
getUpdatePolicy
- Returns:
- the update policy used when launching applications.
-
setCreateAppContext
public void setCreateAppContext(boolean context) Sets whether to launch the application in a new AppContext (a separate event queue, look and feel, etc). If the sun.awt.SunToolkit class is not present then this method has no effect. The default value is true.- Parameters:
context
- appcontext to be set
-
isCreateAppContext
public boolean isCreateAppContext()- Returns:
- whether applications are launched in their own AppContext.
-
setParserSettings
- Parameters:
settings
- the parser settings to use when the Launcher initiates parsing of a JNLP file.
-
setInformationToMerge
Set a map to use when trying to extract extra information, including arguments, properties and parameters, to be merged into the main JNLP- Parameters:
input
- a map containing extra information to add to the main JNLP. the values for keys "arguments", "parameters", and "properties" are used.
-
launch
Launches a JNLP file by calling the launch method for the appropriate file type. The application will be started in a new window.- Parameters:
file
- the JNLP file to launch- Returns:
- the application instance
- Throws:
LaunchException
- if an error occurred while launching (also sent to handler)
-
launch
Launches a JNLP file inside the given container if it is an applet. Specifying a container has no effect for Applcations and Installers.- Parameters:
file
- the JNLP file to launchcont
- the container in which to place the application, if it is an applet- Returns:
- the application instance
- Throws:
LaunchException
- if an error occurred while launching (also sent to handler)
-
launch
Launches a JNLP file by calling the launch method for the appropriate file type.- Parameters:
location
- the URL of the JNLP file to launch location to get the pristine version- Returns:
- the application instance
- Throws:
LaunchException
- if there was an exception
-
launchExternal
public void launchExternal(List<String> vmArgs, JNLPFile file, List<String> javawsArgs) throws LaunchException Launches the JNLP file in a new JVM instance. All streams are properly redirected.- Parameters:
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.- Throws:
LaunchException
- if there was an exception
-
launchExternal
Launches the JNLP file in a new JVM instance. All streams are properly redirected.- Parameters:
url
- the URL of the JNLP file to launch- Throws:
LaunchException
- if there was an exception
-
launchExternal
Launches the JNLP file at the specified location in a new JVM instance. All streams are properly redirected.- Parameters:
vmArgs
- the arguments to pass to the jvmjavawsArgs
- the arguments to pass to javaws (aka Netx)- Throws:
LaunchException
- if there was an exception
-
launchApplication
Launches a JNLP application. This method should be called from a thread in the application's thread group.- Parameters:
file
- jnlpfile - source of application- Returns:
- application to be launched
- Throws:
LaunchException
- if launch fails on unrecoverable exception
-
launchApplet
protected ApplicationInstance launchApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException Launches a JNLP applet. This method should be called from a thread in the application's thread group.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.
- Parameters:
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put application- Returns:
- application
- Throws:
LaunchException
- if deploy unrecoverably die
-
getApplet
protected ApplicationInstance getApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException Gets an ApplicationInstance, but does not launch the applet.- Parameters:
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put applet- Returns:
- applet
- Throws:
LaunchException
- if deploy unrecoverably die
-
launchInstaller
Launches a JNLP installer. This method should be called from a thread in the application's thread group.- Parameters:
file
- jnlp file to read installer from- Returns:
- application
- Throws:
LaunchException
- if deploy unrecoverably die
-
createApplet
protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException Create an AppletInstance.- Parameters:
file
- the JNLP fileenableCodeBase
- whether to add the codebase URL to the classloadercont
- container where to put applet- Returns:
- applet
- Throws:
LaunchException
- if deploy unrecoverably die
-
createAppletObject
protected Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException Creates an Applet object from a JNLPFile. This is mainly to be used with gcjwebplugin.- Parameters:
file
- the PluginBridge to be used.enableCodeBase
- whether to add the code base URL to the classloader.cont
- container where to put applet- Returns:
- applet
- Throws:
LaunchException
- if deploy unrecoverably dien
-
createApplication
Creates an Application.- Parameters:
file
- the JNLP file- Returns:
- application
- Throws:
LaunchException
- if deploy unrecoverably die
-
createThreadGroup
Create a thread group for the JNLP file.- Parameters:
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.- Returns:
- ThreadGroup for this app/applet
-