Java-Applet im Browser ausführen

Hallo,

in meinem Eclipse-Projekt befinden sich zwei Dateien: Die .html-Datei beinhaltet einen -Tag mit der nötigen Information für das Java-Applet, die .java-Datei enthält das Java-Applet.

Zwar kann ich das Java-Applet im Java-Fenster ausführen, aber ich möchte das Applet gerne in einem externen Browser ausführen, und zwar via Netzwerk. (“Open with… browser” öffnet die HTML-Datei nur lokal, und das Applet funktioniert nicht.)

Gibt es eine Möglichkeit, das Java-Applet direkt aus Eclipse in einem externen Browser zum Laufen zu bringen? Oder muss ich eine jar-Datei erstellen?

Danke.

Das Eine hat mit dem Anderen nichts zu tun.
Wenn ein Applet nicht startet hat das ganz bestimmte Gründe, die in den meisten Fällen als Fehlermeldungen auf der Java-Console von der VM bekannt gegeben werden.
Die Fehlermeldung(en) sind der erste Ansatzpunkt bei der Lösung des Problems.
Byte-Welt-Wiki - Java-Applet wird nicht angezeigt, oder startet nicht

Zeige bitte mal deinen Object-Tag.
Vergleichen kannst du schon mal hier: Byte-Welt-Wiki - Einbinden von Java-Applets in HTML-Dateien

Was genau soll dein Applet machen? Möglicherweise hilft dir auch, wenn wir mal den Code analysieren.

Hallo,

Danke für die Antwort! In Firefox bekomme über die Java-Konsole wenigstens ich eine Fehlermeldung, und zwar ClassNotFoundExeption, s. Anhang.

Mir schwant, dass ich Grundlegendes übersehen habe…

Ich sende anbei den Ausschnitt des Project Explorers in Eclipse.

Die Codes sende ich auch mal mit, wiewohl das Applet in einem extra Java-Applet-Fenster läuft, nur eben in keinem Browser (Safari, Chrome, Firefox, Opera. Betriebssystem: Mac OS 10.8).

HelloWorldApplet.java:

package de.w3l.anw;

import javax.swing.JLabel;
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.SwingConstants;
import java.awt.Font;
import java.awt.Color;

public class HelloWorldApplet extends JApplet
{
    public void init()
    {
        try
        {
            SwingUtilities.invokeAndWait(new Runnable() 
            {
                public void run() 
                {
                    getContentPane().setLayout(null);

                    JLabel einText = 
                            new JLabel("Hello World!");
    
                    einText.setFont(new Font("SanSerif", 
                            Font.ITALIC, 20));
                    einText.setForeground(Color.BLUE);
                    einText.setBounds(0, 0, 200, 120);
                    einText.setHorizontalAlignment
                            (SwingConstants.CENTER);
                    einText.setVerticalAlignment
                            (SwingConstants.CENTER);

                    //Text zur Zeichenfl‰che hinzuf¸gen
                    getContentPane().add(einText);
                }
            });
        }
        catch(Exception e)
        {
            System.err.println("GUI-Aufbau fehlgeschlagen");
        }
    }
}```

HelloWorldApplet.html:

```html

<!DOCTYPE html>
<html>
    <head>
        <title>HelloWorldApplet</title>
    </head>
    <body>
        <p>HelloWorldApplet</p>
        <hr/>
        <object classid="java:de.w3l.anw.HelloWorldApplet.class" 
                codetype="application/java-vm" 
                width="200" height="120"
                codebase="../../.."
        >
        </object>

    </body>
</html>

Auf den ersten Blick haut die codebase nicht hin. So ganz verstehe ich allerdings auch nicht die Pfadansicht aus Eclipse.
Versuche mal im object-Tag ohne codebase.

Besten Dank. Habe die codebase rausgelassen und auch mit den Pfaden ein wenig experimentiert, aber genützt hat es nichts :frowning:

Die Dateianordnung im Pfad sollte so aussehen:

[.]
| HelloWorldApplet.html
|_de
   |_w3l
       |_anw
           HelloWorldApplet.class

ohne Codebase.

So, irgendwie ist jetzt meine Antwort verschwunden…

Also, besten Dank, aber mit der Pfadbeschreibung kann ich leider nichts anfangen. HelloWorldApplet.class und HelloWorldApplet.html sind bei mir beide im Package de.w3l.anw; was genau sollte ich ändern?

Merci für Deine Geduld…

Die HTML-Datei muss oberhalb (außerhalb) des Packages liegen

Hab’s probiert, aber da funzt leider gar nichts…

Was sollen wir mit dieser Aussage anfangen?
Fehlermeldungen? In deinem Bild ist die Bytecode-Datei nicht zu sehen. Ist deine Klasse kompiliert?
Wenn das alles nicht hilft, solltest du erst mal ein KSKB ohne Packages schreiben.

Hallo,

Eclipse ist bei mir so eingestellt, dass automatisch kompiliert wird, spätestens wenn ich die Dateien speichere.

Dem Bytecode habe ich bislang nie besondere Beachtung geschenkt, bei meinem bisherigen Tun kam ich ohne aus. Habe selber nochmal nachgeschaut, Dateien im bin-Ordner sind alle da; habe meinen gesamten Workpace entrümpelt und Eclipse de- und wieder neu installiert (jetzt: Juno). Habe auch die neueste Firefox-Version, und Java getestet damit (funktioniert). Hat aber leider nichts geholfen. Fehlermeldungen erhalte ich nun keine mehr; die Java-Konsole zeigt auch nichts an.

Habe auch nochmals kräftig gegoogelt nach Anleitungen / Beispielen der Art “Wie erstelle ich ein Java-Applet (mit Eclipse) und bringe es in einem Browser zum Laufen?”, nichts brauchbares gefunden.

(Offtopic: Hatte gestern Abend schon zweimal eine Antwort geschrieben, die aber im Forum hier nicht auftaucht.)

Finde ich merkwürdig. Das solltest du noch etwas beobachten. Wir haben, wie du unschwer erkennen konntest, die Software gewechselt.
Wenn das immer noch auftritt, solltest du dich mal bei einem Admin melden.

Zum Problem:
Entferne mal die Package-Deklaration aus deiner Klasse, kompiliere neu und erzeuge auch ein neues, darauf abgestimmtes Object-Tag.
Lässt es sich dan starten?

Wenn nicht, bitte versuchen, Fehlermeldungen im Browser zu finden und zusammen mit deinem aktuellen Code und der aktuellen HTML-Datei noch mal posten.