Applications built on eclipse 3.1 can now be deployed using Java Web Start.
Java Web Start "is an application-deployment technology that gives you the power to launch full-featured applications with a single click from your web browser".
The prerequisites to start eclipse from Java Web Start are:
root=<folderContainingStartup.jar>/
<j2se version="1.4+" />
. Click finish.site/ (The root of your jnlp site) startup.jar features/ WrapperingFeature_1.0.0.jar WrapperingFeature_1.0.0.jnlp com.xyz.abc_1.0.0.jar com.xyz.abc_1.0.0.jnlp ... plugins/ org.eclipse.core.runtime_3.1.0.jar com.foo.baz_1.0.0.jnlp ...
A Java Web Start application is described by JNLP files. They replace the eclipse.exe and the config.ini files by some equivalent mechanism. For example, JNLP has its own mechanism to control splash screen, ways to pass parameters and define what constitutes the application.
When you did the export, all the simple JNLP files have been created, so you are left with writing the main file that will control the application. Because the majority of the main file is common to all applications, it is recommended to start from the following self documented template.
On the site serving up your application, the file must be located in the same folder than startup.jar. Once you will be done editing this file, your application will be ready.
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://myCompany.org/jnlpServer" href="mail.jnlp"> <!-- URL to the site containing the jnlp application. It should match the value used on export. Href, the name of this file --> <information> <!-- user readable name of the application --> <title> Mail Application </title> <!-- vendor name --> <vendor>My company</vendor> <!-- vendor homepage --> <homepage href="My company website" /> <!-- product description --> <description>This is a mail client</description> <icon kind="splash" href="splash.gif"/> </information> <!--request all permissions from the application. This does not change--> <security> <all-permissions/> </security> <!-- The name of the main class to execute. This does not change--> <application-desc main-class="org.eclipse.core.launcher.WebStartMain"> <argument>-nosplash</argument> </application-desc> <resources> <!-- Reference to the startup.jar. This does not change --> <jar href="startup.jar"/> <!-- Reference to all the plugins and features consituting the application --> <!-- Here we are refering to the wrappering feature since it transitively refers to all the other plug-ins necessary --> <extension name="Wrappering feature" href="features/Wrappering_1.0.0.jnlp"/> <!-- Information usually specified in the config.ini --> <property name="osgi.instance.area" value="@user.home/Application Data/mail"/> <property name="osgi.configuration.area" value="@user.home/Application Data/mail"/> <!-- The id of the product to run, like found in the overview page of the product editor --> <property name="eclipse.product" value="mail.product"/> </resources> <!-- Indicate on a platform basis which JRE to use --> <resources os="Mac"> <j2se version="1.5+" java-vm-args="-XstartOnFirstThread"/> </resources> <resources os="Windows"> <j2se version="1.4+"/> </resources> <resources os="Linux"> <j2se version="1.4+"/> </resources> </jnlp>
Tips: once you have created this file, you can store it in the wrappering feature in the same folder than the startup.jar, such that on every export you will get the complete structure.
Even though your RCP application does not use features, Java Web Start-ing it is possible.
To do so, it is recommended to create a wrappering feature in order to facilitate the creation of the main jnlp file and ease the deployement. This wrappering feature will list all the plug-ins of your application. Once the feature has been updated copy the generated JNLP file and modify it to become your main JNLP file.