Διανομή εφαρμογής που βασίζεται στο eclipse με Java Web Start

Εφαρμογές που έχουν δομηθεί στο Eclipse μπορούν τώρα να διανεμηθούν με τη χρήση Java Web Start.

Το Java Web Start "είναι μια τεχνολογία διανομής εφαρμογής που σας δίνει τη δυνατότητα εκκίνησης ολοκληρωμένων εφαρμογών με ένα απλό πάτημα από το πρόγραμμα πλοήγησης".

Οι απαραίτητες προϋποθέσεις για την έναρξη του eclipse από το Java Web Start είναι:

Τα παρακάτω βήματα περιγράφουν τον τρόπο ρύθμισης ενός δικτυακού τόπου Java Web Start, ο οποίος προσφέρει μια εφαρμογή RCP βάσει λειτουργιών.

Βήμα 1, δημιουργία μιας λειτουργίας wrapper

Βήμα 2. εξαγωγή της λειτουργίας wrapper και του αρχείου startup.jar

Σημείωση. Πριν να προχωρήσετε στο βήμα αυτό, βεβαιωθείτε ότι έχετε διαθέσιμο ένα αρχείο αποθήκευσης κλειδιών. Το Eclipse δεν παρέχει καμία δυνατότητα δημιουργίας αρχείων αποθήκευσης κλειδιών. Μπορείτε να χρησιμοποιήσετε την εφαρμογή keytool που περιλαμβάνεται στο JDK. Επίσης, βεβαιωθείτε ότι το eclipse, με το οποίο πραγματοποιείτε την ανάπτυξη, εκτελείται σε Java SDK και όχι σε JRE. Αν ο περιορισμός αυτός δεν ικανοποιείται, τότε η υπογραφή jar θα αποτύχει.

Βήμα 3, δημιουργία του κύριου αρχείου JNLP

Μια εφαρμογή Java Web Start περιγράφεται από αρχεία JNLP. Αντικαθιστούν τα αρχεία eclipse.exe και config.ini με έναν ισοδύναμο μηχανισμό. Για παράδειγμα, το JNLP διαθέτει το δικό του μηχανισμό για τον έλεγχο της οθόνης εκκίνησης, για τους τρόπους μεταβίβασης παραμέτρων και τον ορισμό των συστατικών στοιχείων της εφαρμογής.

Αφού πραγματοποιήσατε την εξαγωγή, όλα τα απλά αρχεία JNLP έχουν δημιουργηθεί, οπότε σας έχει μείνει το κύριο αρχείο το οποίο θα ελέγχει την εφαρμογή. Καθώς το κύριο αρχείο είναι συνήθως κοινό σε όλες τις εφαρμογές, συστήνεται να ξεκινήσετε από το παρακάτω αυτοτεκμηριωμένο πρότυπο.

Στο δικτυακό τόπο όπου εκτελείται η εφαρμογή σας, το αρχείο πρέπει να βρίσκεται στον ίδιο φάκελο με το startup.jar. Αφού τελειώσετε με την επεξεργασία του αρχείου αυτού, η εφαρμογή σας είναι έτοιμη.

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

Υπόδειξη: αφού δημιουργήσετε το αρχείο αυτό, μπορείτε να το αποθηκεύσετε στη λειτουργία wrapper, στον ίδιο φάκελο με το startup.jar, έτσι ώστε να λαμβάνετε την πλήρη δομή σε κάθε εξαγωγή.

Εφαρμογή βάσει πρόσθετων λειτουργιών

Ακόμη κι αν η εφαρμογή RCP δεν χρησιμοποιεί λειτουργίες, η λειτουργία του Java Web Start είναι εφικτή.

Για να το κάνετε αυτό, συστήνεται η δημιουργία μιας λειτουργίας wrapper, προκειμένου να διευκολύνεται η δημιουργία του κύριου αρχείου jnlp, καθώς και η αναδίπλωση. Αυτή η λειτουργία wrapper θα αναγράφει όλες τις πρόσθετες λειτουργίες της εφαρμογής σας. Μετά την ενημέρωση της λειτουργίας, αντιγράψτε το αρχείο JNLP και τροποποιήστε το ώστε να το καταστήσετε το κύριο αρχείο σας JNLP.

Διάφορα

Java Web Start σε λειτουργικό σύστημα Linux

Όταν μια εφαρμογή eclipse εκκινείται με Web Start σε Linux, το προεπιλεγμένο σύστημα παραθύρων είναι το Motif. Εάν επιθυμείτε την εκτέλεση παραθυρικού συστήματος GTK, θα πρέπει να ορίσετε την τιμή "gtk" στην ιδιότητα osgi.ws στο κύριο αρχείο jnlp. Για παράδειγμα, μπορείτε να προσθέσετε:

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

Γνωστοί περιορισμοί