Implementando Aplicativo com Base em Eclipse com Java Web Start

Os aplicativos construídos no Eclipse 3.1 agora 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:

As etapas a seguir descrevem como configurar um site do Java Web Start servindo um aplicativo RCP com base em recurso.

Etapa 1, Criando um Recurso do Wrapper

Etapa 2, Exportando o Recurso do Wrapper e o startup.jar

Nota. Antes de prosseguir com esta etapa verifique se você possui um armazenamento de chaves disponível. O Eclipse não fornece nenhum recurso para criar keytores. É necessário utilizar o keytool. Além disso, verifique se o Eclipse com o qual está desenvolvendo está executando em um Java SDK em vez de um JRE. Se essa restrição não for atendida, a assinatura do jar falhará.

Etapa 3, Criando o Arquivo jnlp Principal

Um aplicativo Java Web Start é descrito por arquivos JNLP. Eles substituem o eclipse.exe e os arquivos config.ini por algum 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 gabarito 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 plug-ins de recursos que constituem o aplicativo -->
    <!-- Aqui, estamos fazendo referência ao recurso do wrapper pois ele faz referênciade forma temporária a todos os outros plug-ins necessários -->
<extension
        name="Wrappering feature"
        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>

Dicas: após criar esse arquivo, é possível armazená-lo no recurso do wrapper na mesma pasta que o startup.jar, de tal forma que em cada exportação você obterá a estrutura completa.

Aplicativos com Base em Plug-ins

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 do wrapper lista todos os plug-ins do aplicativo. Quando o recurso estiver atualizado,copie o arquivo JNLP gerado e modifique-o para que se torne o arquivo JNLP principal.

Limitações Conhecidas