Java Web Start Definition, Beispiel, JNLP JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 1 Definition Technologie zur Auslieferung von Java Anwendungen über das Internet. Web Start Anwendungen bieten: • Einfache Aktualisierung • On- und offline Ausführung Startmöglichkeiten: • Webbrowser Link • Desktop Icon (Link) • Web Start Application Manager JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 2 Beispiel Code import java.awt.Frame; import java.awt.event.*; public class First extends Frame implements WindowListener { public First() { setSize(100, 100); addWindowListener(this); show(); } /* WindowListener methods */ public void windowClosing(WindowEvent e) { System.exit(0); } public void ... public static void main(String args[]) { First f = new First(); } } JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 3 Beispiel JNLP <?xml version="1.0" encoding="utfencoding="utf-8"?> <jnlp spec="1.0+" codebase="http://localhost:8080/swe2/jaws/" " codebase=" href="first.jnlp"> <information> JNLP Application</title> </title> <title>First <title> <vendor>SSW</vendor> </vendor> <vendor> <homepage href="http://localhost:8080/swe2/first.jnlp"/> "/> href=" <description>First Demo Application</description> </description> <description> "/> <icon href="images/first.jpg"/> href=" "/> <icon kind="splash" href="splash/first.jpg"/> href=" <offline<offline-allowed/> </information> <security><all<security><all-permissions/></security> <resources> <j2se version="1.4+"/> "/> version=" <jar href="lib/first.jar"/> "/> href=" </resources> <application"/> <application-desc mainmain-class="First"/> class=" </jnlp> JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 4 Beispiel Installieren Kompilieren In JAR verpacken • jar cf <Dateiname>.jar { <ClassDatei>.class } - z.B.: jar cf first.jar First.class Signieren • Ev. Schlüssel mit keygen –genkey erstellen • jarsigner <Dateiname>.jar <Key Alias> - z.B.: jarsigner first.jar mykey first.jnlp Auf Webserver kopieren Zur Client-Installation mit Browser aufrufen first.jar • http://localhost:8080/swe2/jaws/first.jnlp Ausführen über: • Browser • WebStart JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 5 Beispiel JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 6 Java Network Launching Protocol Syntax 1/3 <jnlp> • • • • spec: Beschreibt die Spezifikation (Standard: "1.0+"). codebase: Auf diese Basis beziehen sich alle relativen Angaben. href: URL auf diese jnlp-Datei <security>, <information>, <resources>, <application-desc>, <applet-desc> <security> • <all-permissions/>: Zugriff auf alle Systemresourcen (Disk, Netz). <information> • • • • <title>Name der Anwendung</Title> <vendor>Hersteller</vendor> <homepage href="Homepage der Anwendung"/> <description>Beschreibung der Anwendung</description> - kind="one-row | short | tool-tip" • <icon> - href="Adresse des Icons" - kind="splash": Zeigt an das dieses Icon als "Splashscreen" genutzt wird. • <offline-allowed/> JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 7 Java Network Launching Protocol Syntax 2/3 <resources> • <jar> - href="Adresse des Java Archives der Anwendung" - download="lazy | eager" • <nativelib> - href="Adresse der Bibliotheken" - download="lazy | eager" • <j2se> - version="1.4+" - initial-heap-size="64m" - href="http://java.sun.com/products/autodl/j2se" Kann nur bei exakter angabe der Version erfolgen (z.B.: version="1.4.2_02") • <property>: Abfragen mit System.getProperty oder System.getProperties - name="Name" - value="Wert" JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 8 Java Network Launching Protocol Syntax 3/3 <application-desc> • <argument>Argument</argument> - Kann beliebig oft vorkommen (erstes Vorkommen Argument 1, zweites Argument2, usw.) - Diese Argumente werden an main übergeben. • main-class="Klassenname der Hauptklasse" - Kann fehlen, wenn im Manifest bereits angegeben. <applet-desc> • document-base="Adresse des Applets" • name="Name des Applets" • main-class="Hauptklasse des Applets" - Kann fehlen, wenn im Manifest bereits angegeben. • width="Breite" • height="Höhe" • <param> - name="Name" - value="Wert" JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 9 Zusammenfassung Infrastruktur zur Auslieferung Einfache Updates Unterstützung für Anwendungen und Applets Links • Allgemein - http://java.sun.com/products/javawebstart/ • JNLP - http://java.sun.com/j2se/1.4.2/docs/guide/jws/developersguide/syntax.html • Jar-Manifest - http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Manifest%20Specification JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 10