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>/
Ficheiro > Exportar
> Desenvolvimento de Plug-ins > Funções Implementáveis.
No assistente, seleccione a função cápsula, escolha a opção "directório" para
exportar a aplicação JNLP e marque a opção "empacotar funções e plug-ins como
arquivos JAR individuais". Na página seguinte do assistente, preencha as
informações relativas ao arquivo de chaves na secção "Assinar Arquivos JAR". Em seguida, na "Secção JNLP", introduza o nome do servidor que irá servir a sua aplicação e o nível de JRE necessário para iniciar a aplicação. Esse último valor será usado nos ficheiros JNLP gerados para preencher o valor <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>