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 • Desktop Icon, Start Menu • Java Cache Viewer JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 2 Beispiel Code import javax.swing.JFrame; public class First { public void start() { JFrame frame = new JFrame("First WebStart Application"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(100, 100); frame.setVisible(true true); true } public static void main(String[] args) { First f = new First(); f.start(); } } 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="utf-8"?> <jnlp spec="6.0+" codebase="http://www.ssw.uni-linz.ac.at/ Teaching/Lectures/PSW2/2007/JavaWS/" href="first.jnlp"> <information> <title>First JNLP Application</title> <vendor>SSW</vendor> <homepage href="http://www.ssw.uni-linz.ac.at/ Teaching/Lectures/PSW2/2007/JavaWS/index.html"/> <description>First JNPL Demo Application</description> <icon href="images/first.jpg"/> <icon kind="splash" href="splash/first.gif"/> <offline-allowed/> </information> <security><all-permissions/></security> <resources> <java version="1.6+"/> <jar href="lib/first.jar"/> </resources> <application-desc main-class="First"/> </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 • Evtl. Schlüssel mit keytool –genkey erstellen • jarsigner <Dateiname>.jar <Key Alias> first.jar - z.B.: jarsigner first.jar mykey Auf Webserver kopieren Zur Client-Installation mit Browser aufrufen Ausführen über: • Browser • Java Cache Viewer 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> oder <java> - version="1.4+" - href="http://java.sun.com/products/autodl/j2se" Kann nur bei exakter Angabe der Version erfolgen (z.B.: version="1.4.2_02") - java-vm-args - initial-heap-size="64m" - max-heap-size="256m" • <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://jcp.org/en/jsr/detail?id=56 - http://java.sun.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html • Jar-Manifest - http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 10