As aplicações construídas no Eclipse podem ser implementadas com o Java Web Start.
Java Web Start "é uma tecnologia de distribuição de aplicações que viabiliza o lançamento de aplicações de funções completas com um único clique no browser da Web".
Os pré-requisitos para iniciar o Eclipse a partir do Java Web Start são:
root=<folderContainingStartup.jar>/
<j2se version="1.4+" />
. Faça clique em Terminar. 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 ...
Uma aplicação Java Web Start é descrita por ficheiros JNLP. Estes substituem os ficheiros eclipse.exe e config.ini por um mecanismo equivalente. Por exemplo, o JNLP tem o seu próprio mecanismo para controlar ecrã de boas-vindas, maneiras de transmitir parâmetros e definir o que constitui a aplicação.
Quando efectuou a exportação, tinham sido criados todos os ficheiros JNLP, de modo que falta escrever o ficheiro principal que irá controlar a aplicação. Dado que a maioria do ficheiro principal é comum a todas as aplicações, recomenda-se começar no seguinte modelo auto-documentado.
No sítio que serve a sua aplicação, o ficheiro deve encontrar-se na mesma pasta que startup.jar. Uma vez editado este ficheiro, a aplicação ficará pronta.
<?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 constituting the application --> <!-- Here we are referring to the wrapper feature since it transitively refers to all the other plug-ins necessary --> <extension name="Wrapper 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>
Sugestões: uma vez criado este ficheiro, poderá armazená-lo na função cápsula na mesma pasta que o ficheiro startup.jar, de modo a ter em cada exportação a estrutura completa.
Embora a aplicação RCP não utilize funções, é possível recorrer ao Java Web Start.
Nesse sentido, recomenda-se criar uma função cápsula para facilitar a criação do ficheiro jnlp principal e viabilizar a distribuição. Esta função cápsula irá enumerar todos os plug-ins da aplicação. Uma vez a função actualizada, copie o ficheiro JNLP gerado e modifique-o para se tornar no ficheiro JNLP principal.
Quando uma aplicação do eclipse for iniciada no Web Start no Linux o sistema de apresentação em janelas predefinido é motif. Se pretender executar o GTK, será necessário definir a propriedade osgi.ws to "gtk" no ficheiro jnlp principal. Por exemplo, pode adicionar:
<resources os="Linux"/> <property name="osgi.ws" value="gtk"/> </resources>