eva/3 Application BuilderEntwicklung von eva/3 Anwendungeneva/3 Anwendungen ausführen 

Mit Java Web start ausführen

Um eine eva/3 Application Builder Anwendung mit Java Web start auszuführen, wird eine eigene Startklasse benötigt, die den Projektpfad auf dem Clientrechner ermittelt und anschließend die eva/3 Application Builder Anwendung über das eva/3 Runtime startet. Das Projekt mit samt der Startklasse ist dann in eine .Jar-Datei zu exportieren. Der Export wird im Abschnitt Anwendung als .jar-Datei exportieren beschrieben.

Eigene Java Web start Klasse

Eine eigene Java Web start Klasse zum Starten der Anwendung ermittelt den Projektpfad und übergibt der eva/3 Runtime Startklasse die entsprechenden Informationen.

public class Webstart {

    public static void main(String[] args) {
        com.odc.eva3.rt.se.Main.main(new String[]{
            "-o",
            "start.form",
            "-p",
            new Webstart().getProjectPath()});
    }

   private String getProjectPath() {
        ProtectionDomain pdomain = this.getClass().getProtectionDomain();
        URL url=pdomain.getCodeSource().getLocation();

        if (url.getProtocol().equals("http")) {
           return url.toString();
        } else {
           String path = url.getFile();

           if(path.substring(path.length() -2, path.length()).equals("!/"))
               path = path.substring(5, path.length() -2);
           if (path.charAt(0) == '/')
               path = path.substring(1);

           return VBStringFunctions.replace(path, "%20", " ");
        }
    }
}

An Stelle von start.form ist das Startformular bzw. der Startbericht der eva/3 Application Builder Anwendung einzutragen.

Signieren der JAR-Archive

Das neu erstellte Projektarchiv wie auch das eva/3 Runtime Archive eva3rt.jar ist nun zu signieren. Dies erfolgt mit den beiden Tools keytool und jarsigner, die mit dem Java SDK mitgeliefert werden und sich im bin Verzeichnis der Java-Installation befinden.

Im ersten Schritt wird eine digitale Signatur erzeugt, mit der alle JAR-Files signiert werden. Hierfür ist in das bin Verzeichnis der Java Installation zu wechseln und die folgende Kommandozeile abzusetzen.

keytool -genkey -alias alias

Einige Informationen werden von dem Tool abgefragt. Der Schlüssel wird anschließend im Benutzerverzeichnis in der Datei .keystore abgelegt. Der Aliasname ist ein beliebiger Name für das neu erstellte Zertifikat.

Mit dem neu erzeugten Zertifikat sind nun die .jar Dateien zu signieren, die später über Web start angesprochen werden. Hierzu gehören alle vom Projekt benötigten .jar Dateien. Das Signieren erfolgt durch die Eingabe des folgenden Kommandos:

jarsigner jarDatei alias

Hinweis: Alle zum Projekt gehörigen .jar Dateien sind mit dem gleichen Zertifikat zu signieren.

Erstellen der XML - Beschreibung für die Anwendung

Java Web start benötigt eine Datei im XML-Format um die Anwendung zu beschreiben und ihr die passenden Parameter zu übergeben. Diese Datei erhält die Dateiendung .jnlp und enthält folgende Informationen:

<jnlp spec="1.0+"
  codebase="http://optadata.com/webstart"
  href="application.jnlp">
<information> 
  <title>eva/3 Anwendung</title> 
  <vendor>optadat@.com</vendor>
  <homepage href="http://www.optadata.com/webstart"/>
  <description>A little test application using</description>
  <description kind="short">little test application </description>
  <icon href="startbild.gif"/>
  <offline-allowed/> 
</information> 

<security><all-permissions/></security>
  
<resources>
  <j2se version="1.4+" href="http://java.sun.com/products/autodl/j2se"/>
  <j2se version="1.4+"/>
  <jar href="application.jar" main="true"/>
  <jar href="eva3rt.jar" main="false"/>
</resources>
<application-desc main-class="Webstart"/>
</jnlp>

Der Eintrag <codebase> enthält das Basisverzeichnis, unter dem die .jnlp Datei selbst zu finden ist. Für den Sicherheitskontext ist die Zeile <security><all-permissions/></security> von Wichtigkeit, die für die Anwendung alle Rechte, wie z.B. File Input/Output, anfordert. Eine nicht signierte Anwendung kann keine solcher Rechte erhalten. Unter <resources> werden nun alle zuvor signierten .jar Dateien eingetragen, wobei die Projektdatei den Eintrag main="true erhält. Als letztes ist an Stelle von Webstart die Start bzw. Mainklasse einzutragen, die das eva/3 Application Builder Projekt startet. Hierbei muss es sich um einen voll qualifizierten Klassenpfad handeln.

Ausführen mit Java Web start

Alle signierten .jar Dateien und die .jnlp Datei sind in ein beliebiges Webserver-Verzeichnis zu laden und Java Web start zu starten (s. Abb. 13 ).

Abb. 13: Java Web start
Abb. 13: Java Web start

Die URL kann nun unter Speicherort des Java Web start-Anwendungsmanager eingetragen werden. Die .jnlp Datei wird gelesen und die eingetragene Anwendung zum Ausführen angeboten. Vor dem Ausführen der Anwendung wird das Zertifikat überprüft und der Benutzer darauf hingewiesen, dass es sich um eine selbst signierte Anwendung handelt. Akzeptiert der Benutzer dies, wird die Anwendung gestartet.