Aplicativos criados no Eclipse podem ser implementados utilizando o Java Web Start.
O Java Web Start "é uma tecnologia de implementação de aplicativo que oferece o poder de ativar aplicativos de recursos completos com um único clique no navegador da Web".
Os pré-requisitos para iniciar o Eclipse a partir do Java Web Start são:
root=<folderContainingStartup.jar>/
Arquivo > Exportar > Desenvolvimento de Plug-in > Recursos
Implementáveis.
No assistente, selecione o recurso de wrapper, escolha a opção "diretório" para o qual
exportar o aplicativo JNLP e marque a opção "recursos de pacote e plug-ins como archives
JAR individuais". Na página seguinte do assistente, preencha as informações relativas ao
armazenamento de chave na seção "Assinando Archives JAR". Em seguida, na "seção JNPL", digite o nome do servidor que servirá o aplicativo e o nível de JRE requerido para iniciá-lo. Esse último valor será utilizado nos arquivos JNLP gerados para preencher o valor de <j2se version="1.4+" /> . Clique em Concluir.
site/ (A raiz do site jnlp)
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
...
Um aplicativo Java Web Start é descrito por arquivos JNLP. Eles substituem os arquivos eclipse.exe e config.ini por um mecanismo equivalente. Por exemplo, o JNLP possui seu próprio mecanismo para controlar a tela inicial, maneiras de transmitir parâmetros e de definir o que constitui o aplicativo.
Quando você fez a exportação, todos os arquivos JNLP simples foram criados, portanto, resta a gravação do arquivo principal que controlará o aplicativo. Como a maioria dos arquivos principais são comuns a todos os aplicativos, recomenda-se iniciar a partir do modelo autodocumentado a seguir.
No site que serve o aplicativo, o arquivo deve estar localizado na mesma pasta que o startup.jar. Quando você acabar de editar este arquivo, o aplicativo estará pronto.
<?xml version="1.0" encoding="UTF-8"?>
<jnlp
spec="1.0+"
codebase="http://myCompany.org/jnlpServer"
href="mail.jnlp"> <!-- URL para o site que contém o aplicativo jnlp. Ele deve corresponder ao valor utilizado no export.Href, o nome deste arquivo -->
<information>
<!-- nome legível do usuário do aplicativo -->
<title> Mail Application </title>
<!-- nome do fornecedor -->
<vendor>My company</vendor>
<!-- home page do fornecedor -->
<homepage href="My company website" />
<!-- descrição do produto -->
<description>This is a mail client</description>
<icon kind="splash" href="splash.gif"/>
</information>
<!--pedir todas as permissões a partir do aplicativo. Isso não é alterado-->
<security>
<all-permissions/>
</security>
<!-- O nome da classe principal a ser executada. Isso não é alterado-->
<application-desc main-class="org.eclipse.core.launcher.WebStartMain">
<argument>-nosplash</argument>
</application-desc>
<resources>
<!-- Fazer referência ao startup.jar. Isso não é alterado-->
<jar href="startup.jar"/>
<!-- Fazer referência a todos os plugins e recursos que constituem o aplicativo -->
<!-- Aqui estamos nos referindo ao recurso de wrapper, já que ele se refere transitivamente a todos os demais plug-ins necessários -->
<extension
name="Recurso de wrapper"
href="features/Wrappering_1.0.0.jnlp"/>
<!-- Informações geralmente especificadas no config.ini -->
<property
name="osgi.instance.area"
value="@user.home/Application Data/mail"/>
<property
name="osgi.configuration.area"
value="@user.home/Application Data/mail"/>
<!-- O ID do produto a ser executado, como localizado na página visão geral do editor do produto -->
<property
name="eclipse.product"
value="mail.product"/>
</resources>
<!-- Indicar em uma base de plataforma qual JRE utilizar -->
<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>
Dica: uma vez criado esse arquivo, é possível armazená-lo no recurso de wrapper na mesma pasta do startup.jar, de forma que em cada exportação você obterá a estrutura completa.
Embora os aplicativos RCP não utilizem recursos, é possível executar o Java Web Start.
Para fazer isso, é recomendável criar um recurso de wrapper para facilitar a criação do arquivo jnlp principal e facilitar a implementação. Esse recurso de wrapper listará todos os plug-ins de seu aplicativo. Quando o recurso estiver atualizado,copie o arquivo JNLP gerado e modifique-o para que se torne o arquivo JNLP principal.
Quando um aplicativo eclipse é iniciado com o Web Start em Linux, o sistema de janelas padrão é o motif. Se você quiser executar o GTK, precisará definir a propriedade osgi.ws como "gtk" no arquivo jnlp principal. Por exemplo, você pode incluir:
<resources os="Linux"/>
<property name="osgi.ws" value="gtk"/>
</resources>