Distribuér Eclipse-baseret program med Java Web Start

Programmer, der er bygget på Eclipse 3.1, kan distribueres vha. Java Web Start.

Java Web Start "er en programudviklingsteknologi, der giver dig mulighed for at starte komplette programmer ved et enkelt klik fra webbrowseren".

Forudsætningerne for at starte Eclipse from Java Web Start er:

Følgende trin beskriver, hvordan et Java Web Start-websted konfigureres til at betjene en funktionsbaseret RCP-program.

Trin 1. Opret en indpakningsfunktion.

Trin 2. Eksportér indpakningsfunktionen og startup.jar

Bemærk: Før du fortsætter med dette trin, skal du sikre dig, at du har et tilgængeligt nøglelager. Eclipse stiller ikke nogen funktion til oprettelse af nøglelager til rådighed. Du kan bruge keytool-programmet, der leveres sammen med JDK. Du skal desuden sikre dig, at den Eclipse, du udvikler, udføres på Java SDK i stedet for på en JRE. Hvis denne betingelse ikke opfyldes, kan jar-signering ikke udføres.

Trin 3. Opret hoved-JNLP-filen

Et Java Web Start-program beskrives af JNLP-filer. De erstatter filerne eclipse.exe og config.ini vha. en lignende mekanisme. JNLP har f.eks. sin egen mekanisme til at styre åbningsskærmbilledet, måder til at overføre parametre på og måder til at definere, hvad programmet består af.

Da du udførte eksporten, blev alle simple JNLP-filer oprettet, så det, der mangler, er at skrive hovedfilen, som skal styre programmet. Fordi størstedelen af hovedfilen er fælles for alle programmer, anbefales det at starte fra følgende skabelon, som du selv har dokumenteret.

Filen skal være placeret i den samme folder som startup.jar på det websted, hvorfra programmet betjenes. Når du er færdig med at redigere denne fil, er programmet klart.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp 
    spec="1.0+" 
    codebase="http://myCompany.org/jnlpServer" 
    href="mail.jnlp"> <!-- URL til webstedet indeholder jnlp-programmet. Den skal matche den værdi, der blev benyttet ved eksport. Href er navnet på denne fil -->
  <information>
    <!-- navn på program, som kan læses af brugeren -->
    <title> Postprogram </title>
    <!-- leverandørnavn -->
    <vendor>Min virksomhed</vendor>
    <!-- leverandørhjemmeside -->
    <homepage href="Min virksomheds websted" />
    <!-- produktbeskrivelse -->
    <description>Dette er en postklient</description>
    <icon kind="splash" href="splash.gif"/>
  </information>
 
  <!--anmod om alle tilladelser fra programmet. Dette ændres ikke-->
  <security>
    <all-permissions/>
  </security>
 
  <!-- Navnet på den overordnede klasse, der skal udføres. Dette ændres ikke-->
  <application-desc main-class="org.eclipse.core.launcher.WebStartMain">
    <argument>-nosplash</argument>
  </application-desc>
 
  <resources>
    <!-- Reference til startup.jar. Dette ændres ikke -->
    <jar href="startup.jar"/>
 
    <!-- Reference til alle plugins og funktioner, som udgør programmet -->
    <!-- Her refereres til indpakningsfunktionen, da den transitivt refererer til alle andre nødvendige plugins -->
<extension
        name="Indpakningsfunktion"
        href="features/Wrappering_1.0.0.jnlp"/>
 
    <!-- Oplysninger er som regel angivet i config.ini -->
<property
        name="osgi.instance.area" 
        value="@user.home/Application Data/mail"/>
<property
        name="osgi.configuration.area" 
        value="@user.home/Application Data/mail"/>
        
    <!-- ID'en til det produkt, der skal udføres. Like findes på oversigtssiden til produkteditoren -->
<property
        name="eclipse.product" 
        value="mail.product"/>
  </resources>

  <!-- Angiv på en platformbase, hvilken JRE der skal bruges -->
  <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>

Tip: Når du har oprettet denne fil, kan du gemme den i indpakningsfunktionen i den samme folder som startup.jar. Så har du den komplette struktur ved hver eksport.

Plugin-baseret program

Selvom RCP-programmet ikke benytter funktioner, er det muligt at starte den vha. Java Web Start.

Hvis du vil gøre det, anbefales det at oprette en indpakningsfunktion for at lette oprettelsen af hoved-JNLP-filen og for at lette distributionen. Denne indpakningsfunktion indeholder en liste over alle programmets plugins. Når først funktionen er opdateret, skal du kopiere den genererede JNLP-fil og redigere den, så den bliver hoved-JNLP-filen.

Diverse

Java-webstart på Linux

Når et Eclipse-program startes med webstart på Linux, er standardvinduessystemet motiv. Hvis du vil udføre GTK, skal du angive egenskaben osgi.ws som "gtk" i hoved-JNLP-filen. Du kan f.eks. tilføje:

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

Kendte begrænsninger