Distribuzione di un'applicazione basata su Eclipse con Java Web Start

Le applicazioni generate in Eclipse 3.1 possono ora essere distribuite con Java Web Start.

Java Web Start è una tecnologia di distribuzione delle applicazioni che offre la possibilità di avviare applicazioni complesse con un semplice clic dal browser Web.

I prerequisiti per avviare Eclipse da Java Web Start sono:

La seguente procedura descrive come configurare un sito Java Web Start che gestisce un'applicazione RCP basata su funzioni.

1. Creazione di una funzione wrapper

2. Esportazione della funzione wrapper e di startup.jar

Nota: prima di procedere assicurarsi di disporre di un archivio chiavi. Eclipse non fornisce una funzione per la creazione di archivi chiavi. È necessario utilizzare lo strumento keytool. Inoltre, assicurarsi che l'Eclipse di sviluppo sia in esecuzione su Java SDK invece di JRE. Se questo vincolo non viene rispettato, la firma del jar terminerà in errore.

3. Creazione del file JNLP principale

Nei file JNLP viene descritta un'applicazione Java Web Start. Questi file sostituiscono i file eclipse.exe e config.ini con un meccanismo equivalente. Ad esempio, JNLP ha propri meccanismi di controllo della schermata iniziale, modalità di passaggio dei parametri e definizioni dell'applicazione.

Quando si esegue l'esportazione, vengono creati tutti i file JNLP semplici e l'utente deve solo scrivere il file principale che controlla l'applicazione. Dal momento che il file principale presenta molte parti comuni a tutte le applicazioni, si consiglia di iniziare con il seguente modello con documentazione incorporata.

Sul sito che gestisce l'applicazione, il file si deve trovare nella stessa cartella di startup.jar. Dopo aver modificato questo file, l'applicazione sarà pronta per l'esecuzione.

<?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>

Suggerimento: dopo aver creato questo file, è possibile archiviarlo nella funzione wrapper nella stessa cartella di startup.jar, in modo da ottenere la struttura completa ad ogni esportazione.

Applicazione basata su plugin

Anche se un'applicazione RCP non utilizza funzioni, è possibile usare Java Web Start.

A questo scopo si suggerisce di creare una funzione wrapper per facilitare la creazione del file JNLP principale e favorire la distribuzione. Questa funzione wrapper elencherà tutti i plugin dell'applicazione. Dopo aver aggiornato la funzione, copiare il file JNLP generato e modificarlo per farlo diventare il file JNLP principale.

Limitazioni note