Applet Applet zu JavaWebStart migrieren - simples sample geht nicht

LokiA

Mitglied
Hi

Ich will ein Applet auf JavaWebStart migrieren, und habe mir daher ein einfaches Beispiel zum testen gesucht:
https://docs.oracle.com/javase/tutorial/deployment/applet/examplesIndex.html
Habe das Dynamic Tree Demo applet gewählt und wollte damit beginnen zu Arbeiten.

Nach diesem Guid von Oracle versuche ich vor zu gehen: https://docs.oracle.com/javase/9/de...DPG-GUID-1F95EBB3-D5CB-434A-B069-2261900738F5

Aber da Tauchen viele Fragen auf, die einfach beim guide ignoriert werden.
Wenn ich eine main methode nutze zum starten ist diese statisch
-> ich muss also die applet class instanziieren und init aufrufen ... dann sehe ich aber das Applet nicht ...
In der Java Console werden die output lines aber angezeigt.
Unten die einzigen zwei Sachen die geändert wurden (main in der applet classe + JNLP)

Hat da jemand Ideen?

Hier was ich in der applet classe gemacht haben:
(die main Methode eingefügt, und die print lines)
Java:
/*
* Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
 ... siehe link oben
*/
package appletComponentArch;

import javax.swing.JApplet;
import javax.swing.SwingUtilities;

public class DynamicTreeApplet extends JApplet {

    public static void main(String[] args) {
        System.out.println("Hello, World");
        DynamicTreeApplet dynamicTreeApplet = new DynamicTreeApplet();
        dynamicTreeApplet.init();
    }

    //Called when this applet is loaded into the browser.
    public void init() {
        System.out.println("init(): in");

        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI();
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
        System.out.println("init(): out");
    }
   
    /**
     * Create the GUI. For thread safety, this method should
     * be invoked from the event-dispatching thread.
     */
    private void createGUI() {
        System.out.println("createGUI(): in");
        //Create and set up the content pane.
        DynamicTreePanel newContentPane = new DynamicTreePanel();
        newContentPane.setOpaque(true);
        setContentPane(newContentPane);
        System.out.println("createGUI(): out");
    }       
}

zum Starten verwende ich ein JNLP (habe das original angepasst und applet-desc durch application-desc ersetzt, damit eben JWS und nicht applet genutzt wird)

HTML:
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Dynamic Tree Demo JWS</title>
        <vendor>Dynamic JWS</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.7+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="DynamicTreeDemo.jar" main="true" />

    </resources>
    <application-desc
         name="Dynamic Tree Demo JWS"
         main-class="appletComponentArch.DynamicTreeApplet"
         width="300"
         height="300">
     </application-desc>
    <update check="always" policy="always"/>
</jnlp>

PS: wenn wer einen Besseren guide zur Migration kennt, oder ein Projekt, bei dem man Java und JWS Version des Codes sieht bin ich dankbar.
 

krgewb

Top Contributor
Ich zeige dir jetzt wie man eine funktionierende WebStart-Anwendung erstellt (jre1.8.0_131).
Angenommen du hast das folgende Java-Programm, das ein Schachbrett (ohne Figuren) anzeigt:

Java:
package de.hrw.schachbrett;

import java.awt.EventQueue;
import java.awt.*;
import javax.swing.*;

/**
 * Diese Klasse stellt die ausfuehrbare Klasse dar. Sie enthaelt die
 * main-Methode.
 *
 */

public class Hauptprogramm {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    @SuppressWarnings("unused")
                    Hauptfenster hauptfenster = new Hauptfenster();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

}

/**
 * Diese Klasse stellt das Hauptfenster dar. Das Hauptfenster erstellt eine
 * Instanz der der Klasse Spielflaeche.
 *
 */

class Hauptfenster extends JFrame {
    private static final long serialVersionUID = 1L;
    private int anzahlZeilen = 10;
    private int anzahlSpalten = 10;
    private Spielfeld spielfeld;

    // Konstruktor
    public Hauptfenster() {

        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        this.setTitle("Schachbrett");

        // Die Fenstergroesse soll nicht veraenderbar sein.
        this.setResizable(false);

        this.spielfeld = new Spielfeld(anzahlZeilen, anzahlSpalten);

        this.add(this.getSpielfeld(), BorderLayout.CENTER);

        this.pack();

        // Position bestimmen
        this.setLocationRelativeTo(null);

        // JFrame sichtbar machen.
        this.setVisible(true);

    }

    public Spielfeld getSpielfeld() {
        return spielfeld;
    }

    public void setSpielfeld(Spielfeld spielfeld) {
        this.spielfeld = spielfeld;
    }

}

/**
 * Diese Klasse stellt das Spielfeld dar. Die Klasse enthaelt schachbrettartige
 * Labels. Dazu benutzt die Spielflaeche ein GridLayout.
 *
 */

class Spielfeld extends JPanel {

    private static final long serialVersionUID = 1L;
    private JLabel schachbrett[][];

    // Konstruktor
    public Spielfeld(int anzahlZeilen, int anzahlSpalten) {

        this.setLayout(new GridLayout(anzahlZeilen, anzahlSpalten));

        this.schachbrett = new JLabel[anzahlZeilen][anzahlSpalten];

        for (int zeile = 0; zeile < anzahlZeilen; zeile++) {
            for (int spalte = 0; spalte < anzahlSpalten; spalte++) {
                schachbrett[zeile][spalte] = new JLabel();
                schachbrett[zeile][spalte].setPreferredSize(new Dimension(50, 50));
                // zeile besitzt geraden Wert.
                if (zeile % 2 == 0) {
                    // Wenn spalte einen ungeraden Wert besitzt, soll das JLabel
                    // schwarz sein. Anderenfalls soll es weiss sein.
                    if (spalte % 2 == 0) {
                        schachbrett[zeile][spalte].setBackground(Color.BLACK);
                    } else {
                        schachbrett[zeile][spalte].setBackground(Color.WHITE);
                    }
                    // zeile besitzt ungeraden wert.
                }
                // zeile besitzt einen ungeraden Wert.
                else {
                    // Wenn spalte einen geraden wert besitzt, soll das JLabel
                    // weiss sein. Anderenfalls soll es schwarz sein.
                    if (spalte % 2 == 0) {
                        schachbrett[zeile][spalte].setBackground(Color.WHITE);
                    } else {
                        schachbrett[zeile][spalte].setBackground(Color.BLACK);
                    }
                }
                // Das JLabel schachbrett soll alles darunterliegende
                // ueberdecken.
                schachbrett[zeile][spalte].setOpaque(true);
                this.add(schachbrett[zeile][spalte]);
            }
        }
        this.setVisible(true);
    }
}

Danach in Eclipse:
Datei -> Export -> Runnable JAR File

Damit erstelle ich die Datei Schachbrett.jar. Diese lade ich nun auf meinem Webserver unter html/Schachbrett hoch.
http://weingartenvideos.de/Schachbrett/Schachbrett.jar

Nun erstelle ich die Datei Schachbrett.jnlp und fülle sie mit folgendem Inhalt:

HTML:
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File fuer Schachbrett -->
<jnlp spec="1.0+" codebase="http://weingartenvideos.de" href="Schachbrett/Schachbrett.jnlp">
    <information>
        <title>Schachbrett</title>
        <vendor>Erich</vendor>
        <homepage href="http://weingartenvideos.de/index.html"/>
        <description>Schachbrett</description>
        <description kind="short">Eine swing-Anwendung</description>
        <offline-allowed/>
    </information>
    <security>
    </security>
    <resources>
        <j2se version="1.3+"/>
        <jar href="Schachbrett/Schachbrett.jar"/>
    </resources>
    <application-desc main-class="de.hrw.schachbrett.Hauptprogramm"/>
</jnlp>

Jetzt lade ich die Datei auf meinem Webserver unter html/Schachbrett hoch.

Dann Windows-Taste -> Java konfigurieren -> Sicherheit -> Siteliste bearbeiten -> Hinzufügen -> http://weingartenvideos.de

Nun kann die jnlp-Datei ausgeführt werden:
http://weingartenvideos.de/Schachbrett/Schachbrett.jnlp
 
Zuletzt bearbeitet:

LokiA

Mitglied
Angenommen du hast das folgende Java-Programm, das ein Schachbrett (ohne Figuren) anzeigt:
Aber das ist genau eine falsche Annahme.
Ich will ja eine richtige Migration machen - und die scheitert - es ist das Problem von Applet zu JWS ...
daher hab ich ja auch ein simples Beispiel gewählt um es einfach zu testen.
Eine neue Anwendung (die nicht auf Applet basiert) habe ich auch schon mal so starten können.

Schonmal die Migration versucht?

(was vl auch noch interessant ist wenn das JNLP von einem Server kommt, muss der ggf konfiguriert werden, damit der mime Type unterstützt wird)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java Applet Verknüpfungsproblem Allgemeine Java-Themen 6
A Applet Applet debuggen und Logs finden Allgemeine Java-Themen 3
A Plot funktion applet Allgemeine Java-Themen 4
A Applet nullstelle Plot Allgemeine Java-Themen 1
A Applet in HTML einbinden Allgemeine Java-Themen 1
B Altes Applet anpassen Allgemeine Java-Themen 8
W Unterschied Standalone und Applet Allgemeine Java-Themen 1
L WebSign Applet der Deutschen Bank Allgemeine Java-Themen 0
K Applet in JApplet umwandeln Allgemeine Java-Themen 5
V Applet trotz Ausnahme blockiert Allgemeine Java-Themen 0
T Java Applet Berechtigungen Allgemeine Java-Themen 2
T 2D-Grafik Java Applet Rechtecke und Kreise Allgemeine Java-Themen 1
I Java Applet wird immer blockiert Allgemeine Java-Themen 3
S Applet in html laden; InvocationTargetException,.. nur warum ? Allgemeine Java-Themen 0
S Java Applet wird dauerhaft blockiert Allgemeine Java-Themen 1
T Java applet args Allgemeine Java-Themen 5
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
L Java Applet - ClassNotFound online, offline korrekt Allgemeine Java-Themen 13
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
H Problem mit Applet (online / offline) Allgemeine Java-Themen 8
K Applet-Einbindung Allgemeine Java-Themen 11
T Java Applet in IE 8+9 Allgemeine Java-Themen 4
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
X Applet läuft nicht, Applet in Webseite einbinden Allgemeine Java-Themen 4
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
P Applet Applet einbinden Probleme Allgemeine Java-Themen 2
S URL File in Applet Allgemeine Java-Themen 16
S Fehler Applet-HTML Allgemeine Java-Themen 5
C Applet per Greasemonkey aufrufen Allgemeine Java-Themen 9
U Wie kann mit einen Java Applet Dateien erstellen,verschieben und löschen? Allgemeine Java-Themen 9
D JAVA Applet MVC? Allgemeine Java-Themen 2
E Application -> Applet Allgemeine Java-Themen 9
A Applet Mein Applet verursacht Browserabsturz Allgemeine Java-Themen 8
J Erste Schritte Applet allgemeine Funkion Allgemeine Java-Themen 8
T Java Application zu Applet Allgemeine Java-Themen 4
G Input/Output java applet schreibrechte Allgemeine Java-Themen 8
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
G java applet und com-port Allgemeine Java-Themen 7
A Applet Jar Datei auslesen Allgemeine Java-Themen 3
M Applet aus Eclipse Allgemeine Java-Themen 12
M Applet Oberfläche aktualisieren Allgemeine Java-Themen 5
S Applet maximiert starten Allgemeine Java-Themen 5
A Email-Programm aus Applet öffnen Allgemeine Java-Themen 4
M AccessControlException bei Signiertem Applet Allgemeine Java-Themen 12
J Applet Ausgabe beim Speichern ausblenden Allgemeine Java-Themen 4
schlingel Webstart/Applet Problem - Classloader-Bug Allgemeine Java-Themen 7
W Java Applet läuft langsam Allgemeine Java-Themen 2
J Applet zum .java-Dateien auslesen/erstellen Allgemeine Java-Themen 5
S Timer in Applet? Allgemeine Java-Themen 11
S Applet Einbindung - Firefox kp, IE no way Allgemeine Java-Themen 8
N Gallery Remote Applet Allgemeine Java-Themen 2
F Link in Applet "verstecken" Allgemeine Java-Themen 3
F mit Applet auf .htaccess geschützte Dateien zugreifen Allgemeine Java-Themen 3
S Applet in Java NetBeans Allgemeine Java-Themen 3
E Applet neustarten Allgemeine Java-Themen 2
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
I RMI Signiertes Applet ohne Warnung? Allgemeine Java-Themen 14
S Mediaplayer-Applet Allgemeine Java-Themen 2
D Code wird im Applet nicht ausgeführt. Allgemeine Java-Themen 2
H Applet java.lang.reflect.InvocationTargetException Allgemeine Java-Themen 9
N Protocol Frame/Applet Allgemeine Java-Themen 4
J Aus Applikation ein Applet machen Allgemeine Java-Themen 5
S Directory im Applet auslesen Allgemeine Java-Themen 3
A Textdatei im Applet einlesen Allgemeine Java-Themen 2
S Applet funktioniert online - nur nicht lokal..? Allgemeine Java-Themen 2
N Java Applet im eingeschränkten Benutzeraccount Allgemeine Java-Themen 10
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
L Problem beim animieren von Bildern in Applet Allgemeine Java-Themen 23
L Problem mit Hintergrund bei JAVA Applet Allgemeine Java-Themen 27
T applet und JFrame Allgemeine Java-Themen 12
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
J Ordnerstrukturen mit Applet Allgemeine Java-Themen 14
H importierte Bibliotheken in Applet? Allgemeine Java-Themen 4
lumo Applet exception Allgemeine Java-Themen 6
Developer_X Java Applet - Font aus datei laden Allgemeine Java-Themen 15
W Applet notinited nach Java Versionsupdate Allgemeine Java-Themen 12
M Erkennung von Daten in einem Applet Allgemeine Java-Themen 2
M wieder mal applet probleme Allgemeine Java-Themen 17
0 Sandbox und Applet Kommunikation Allgemeine Java-Themen 9
L Applet Problem - stockende und springende Bilderabfolge Allgemeine Java-Themen 12
ChackZz Applikation zu Applet umbauen Allgemeine Java-Themen 13
V Fehler bei Applet Allgemeine Java-Themen 11
G Frage zu Serverapplikation+Applet Allgemeine Java-Themen 2
MQue aus einem Applet auf Word zugreifen Allgemeine Java-Themen 3
B Java Applet unter Mac wird nicht angezeigt Allgemeine Java-Themen 6
N Applet Probleme Allgemeine Java-Themen 2
G Java Applet für VPN Allgemeine Java-Themen 2
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
S Applet Programmierung in Eclipse Allgemeine Java-Themen 12
M Applet in maximaler Bildschirmgroesse oeffnen? Allgemeine Java-Themen 7
J Applet in JAR packen - was muss in main() stehen? Allgemeine Java-Themen 12
P Applet Funktionalität überwachen Allgemeine Java-Themen 3
hdi Applet, JavaScript, PHP, mySQL -> Was brauch ich? Allgemeine Java-Themen 3
C Externe Bilder in Java-Applet blocken? Allgemeine Java-Themen 2
T Mit Applet per RandomAccessFile Datei öffnen Allgemeine Java-Themen 3
Horst79 Ein ganz simpler filebrowser als applet Allgemeine Java-Themen 2
A Problem mit signiertem Applet Allgemeine Java-Themen 8
T File runterladen mit meinem Applet? Allgemeine Java-Themen 4
F Java Print mit Applet einbinden Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben