Distribuere Eclipse-baserte applikasjoner med Java Web Start

Applikasjoner som bygger på Eclipse, kan distribueres ved hjelp av Java Web Start.

Java Web Start "er en teknologi for applikasjonsdistribuering som med et enkelt klikk i nettleseren, lar deg starte applikasjoner med komplett funksjonalitet".

Følgende krav må oppfylles før du kan starte Eclipse fra Java Web Start:

Trinnene nedenfor beskriver hvordan du konfigurerer et Java Web Start-sted med en funksjonsbasert RCP-applikasjon.

Trinn 1: Opprette en wrapper-funksjon

Trinn 2: Eksportere wrapper-funksjon og startup.jar

Merk: Før du tar fatt på dette trinnet, må du forsikre deg om at du har et tilgjengelig nøkkellager. Eclipse inneholder ingen funksjon for opprettelse av nøkkellager. Du kan bruke keytool-applikasjonen som følger med JDK. Forsikre deg dessuten at Eclipse kjører på en Java SDK og ikke JRE. Hvis dette ikke er tilfelle, vil JAR-signeringen mislykkes.

Trinn 3: Opprette JNLP-hovedfilen

En Java Web Start-applikasjon beskrives av JNLP-filer. De erstatter filene eclipse.exe og config.ini med tilsvarende mekanisme. JNLP har for eksempel en egen mekanisme som styrer oppstartsbildet, overføring av parametere og definisjonen av hva som inngår i applikasjonen.

Da du eksporterte filene ble alle enkle JNLP-filer opprettet, så du trenger bare å skrive hovedfilen som skal styre applikasjonen. Ettersom hovedfilen hovedsakelig er felles for alle applikasjoner, bør du starte fra følgende selvdokumenterte mal.

Filen må ligge i samme mappe som startup.jar, på stedet for applikasjonen. Applikasjonen er klar når du er ferdig med å redigere filen.

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

Tips: Når du har opprettet filen, kan du lagre den i wrapper-funksjonen i samme mappe som startup.jar, slik at du får den komplette strukturen hver gang du eksporterer.

Plugin-baserte applikasjoner

Selv om RCP-applikasjonen ikke bruker funksjoner, er dette mulig med Java Web Start.

Hvis du vil gjøre dette, bør du opprette en wrapper-funksjon for å forenkle opprettelsen av JNLP-hovedfilen og distribusjonen. Wrapper-funksjonen viser alle plugin-modulene i applikasjonen. Når funksjonen er oppdatert, kopierer du den genererte JNLP-filen og endrer den slik at den blir JNLP-hovedfilen.

Diverse

Java Web Start på Linux

Nå en Eclipse-applikasjon startes med Web Start på Linux, er standard vindusteknikksysten motiv. Hvis du vil kjøre GTK, må du definere egenskapen osgi.ws to "gtk" i JNLP-hovedfilen. Du kan for eksempel legge til

  <resources os="Linux"/>
        <property name="osgi.ws" value="gtk"/>
  </resources>

Kjente begrensninger