Applet lässt sich nicht starten



  • Ich habe mit NetBeans ein JavaApplet geschrieben. Es lässt sich fehlerfrei kompilieren und ausführen (mit Shift+F6), aber wenn man es im Browser anschauen will, funktioniert es nicht (Internet Explorer: nur Rahmen und Kreuz oben links/ Opera: in der Mitte der Applet Fläche steht: "Applet crashed")

    Woran kann das liegen?

    PS: Ja, die Browser unterstützen Java. Ein neu erstelltes Applet (nur mit einer JTextArea drin) kann damit auch gestartet werden.



  • Mh ohne Fehlermeldung und/oder Code ist das schwer zu sagen. Kannst du die Java-Konsole öffnen? Da müsste eine entsprechende Fehlermeldung stehen. Wenn du so ein lustiges Tray-Icon von Java unten zu stehen hast, kannst du da per Rechtsklick ein Popup-Menü öffnen, womit du die Konsole öffnen kannst.
    Oder vielleicht geht das auch irgendwie irgendwo in deinem Browser(benutze keinen von beiden, daher habe ich keine Ahnung).
    Hauptsache eine Fehlermeldung.
    Den html-Code könntest du auch posten.



  • www.phynet.de/private/snOOfy/PhyNet.rar

    Das ist das NetBeans Projekt. Wichtig sind nur die beiden Dateien im src Ordner. Vielleicht kann mal wer versuchen, das Teil zu starten und mir dann Bericht erstatten?
    (Das sollte ja auch gehen, wenn man diesen Editor nicht hat, eigentlich braucht man ja nur die Applet Datei und die andere für die Aufgaben Klasse).

    Wenn du so ein lustiges Tray-Icon von Java unten zu stehen hast

    Nein hab ich nicht.

    Ach ja, der html Code:

    <HTML>
    <HEAD>
       <TITLE>Applet HTML Page</TITLE>
    </HEAD>
    <BODY>
    
    <H3><HR WIDTH="100%">Applet HTML Page<HR WIDTH="100%"></H3>
    
    <P>
    <APPLET codebase="file:/D:/Java/PhyNet/build/classes/" code="ExerciseApplet.class" width=600 height=370></APPLET>
    </P>
    
    <HR WIDTH="100%"><FONT SIZE=-1><I>Generated by NetBeans IDE</I></FONT>
    </BODY>
    </HTML>
    

    Den hab ich nicht selber gemacht, sollte also eigentlich korrekt sein.



  • appletviewer ExerciseApplet.html
    
    java.security.AccessControlException: access denied (java.io.FilePermission D:\Aufgaben.txt read)
            at java.security.AccessControlContext.checkPermission(Unknown Source)
            at java.security.AccessController.checkPermission(Unknown Source)
            at java.lang.SecurityManager.checkPermission(Unknown Source)
            at java.lang.SecurityManager.checkRead(Unknown Source)
            at java.io.FileInputStream.<init>(Unknown Source)
            at java.io.FileInputStream.<init>(Unknown Source)
            at java.io.FileReader.<init>(Unknown Source)
            at ExerciseApplet.start(ExerciseApplet.java:95)
            at sun.applet.AppletPanel.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    

    Dir scheint nicht klar zu sein, daß Applets nicht einfach auf der Festplatte rumlesen dürfen. 🙂



  • Ach ja! Das hatte ich nicht bedacht...

    Hmm, aber später soll das Applet ja auch nicht auf die Festplatte des Users zugreifen, sondern nur auf die Aufgaben.txt, die auf dem Server gespeichert ist. Lässt sich das nicht irgendwie machen?



  • snOOfy schrieb:

    Ach ja! Das hatte ich nicht bedacht...

    Hmm, aber später soll das Applet ja auch nicht auf die Festplatte des Users zugreifen, sondern nur auf die Aufgaben.txt, die auf dem Server gespeichert ist. Lässt sich das nicht irgendwie machen?

    Doch, mit Servlets (auch serverseitige Applets genannt 🙂 ).
    Hier kommt dann wieder der Verweis auf java.sun.com und die Tutorial Section.



  • 😞

    du meinst das hier?
    http://java.sun.com/developer/onlineTraining/Servlets/Fundamentals/servlets.html

    Muss ich das wirklich alles lesen, nur um das Applet so umzubauen, dass es auf eine Datei zugreifen kann? 😮
    Und ich dachte schon, ich hätte das Projekt fertig und müsste nur einen kleinen Fehler behebe...



  • Na ja, mit fiele jetzt keine andere Java-Technologie ein, mit der man ein Frage-Antwort-Quiz Spiel machen könnte, wenn die Daten auf'm Server liegen. Höchstens JSP könntest du noch nehmen, das funktioniert im Prinzip wie PHP und ASP.



  • Wie groß ist denn der Aufwand, ein Applet zu einem Servlet umzuschreiben? Wenn es nicht so übermäßig schwierig ist, werde ich das wohl machen müssen...



  • snOOfy schrieb:

    Wie groß ist denn der Aufwand, ein Applet zu einem Servlet umzuschreiben? Wenn es nicht so übermäßig schwierig ist, werde ich das wohl machen müssen...

    Nicht sooo groß, wenn auch das Applet nicht übermäßig kompliziert ist und sich der Umfang eben in Grenzen hält. Du musst eigentlich nur die Grundstruktur anpassen (salopp gesagt).



  • GPC schrieb:

    snOOfy schrieb:

    Ach ja! Das hatte ich nicht bedacht...

    Hmm, aber später soll das Applet ja auch nicht auf die Festplatte des Users zugreifen, sondern nur auf die Aufgaben.txt, die auf dem Server gespeichert ist. Lässt sich das nicht irgendwie machen?

    Doch, mit Servlets (auch serverseitige Applets genannt 🙂 ).
    Hier kommt dann wieder der Verweis auf java.sun.com und die Tutorial Section.

    Höh?? 😕

    Also wenn Du die Aufgaben.txt einfach nur vom Server lesen willst, geht das auch mit Applets problemlos!
    Keine Ahnung auf was GPC hinauswill?!?
    Du kannst natürlich nicht so ohne weiteres was auf dem Server speichern - also wieder was zurückschreiben (Highscores?) ist nicht so simpel. Vielleicht meint er das.



  • Also gleich Servlets zu verwenden, ist doch vielleicht ein bisschen übertrieben, zumal nicht gleich auf jedem Webserver ´nen Application Server läuft und das für Anfänger vielleicht auch nicht gleich zu empfehlen ist.
    Wie gesagt, lesen geht auf dem Server ohne Probleme. Um Daten zu schreiben (so eine Textdatei z.B.) könntest du ja auch eine php-Seite(das unterstützen sicherlich mehr Webserver bzw. das ist auch auf Servern, auf denen man gemieteten webspace hat, eher verfügbar) schreiben, der du dann per POST oder GET (je nach Länge der Zeichenketten bei den einzelnen Aufrufen) die Daten übergeben kannst und die das ganze dann für dich auf dem Server speichert.
    Ich habe mir mal eine Klasse für solche Http-Anfragen geschrieben, wenn du willst, kann ich dir die Klasse bzw. den Quellcode schicken.



  • Sgt. Nukem schrieb:

    Also wenn Du die Aufgaben.txt einfach nur vom Server lesen willst, geht das auch mit Applets problemlos!
    Keine Ahnung auf was GPC hinauswill?!?
    Du kannst natürlich nicht so ohne weiteres was auf dem Server speichern - also wieder was zurückschreiben (Highscores?) ist nicht so simpel. Vielleicht meint er das.

    Oha, er will ja nur lesen, na dann tut's natürlich das Applet schon, ich war bis gerade eben der Meinung, er wolle auch schreiben, muss mich wohl verlesen haben.



  • Also das Applet soll in meiner Seite http://www.phynet.de in den php code eingebaut werden, so dass unter jedem Artikel Aufgaben kommen, mit denen man überprüfen kann, ob man den Artikel verstanden hat.

    Wen es interessiert, wir haben unsere Domain und Webspace von all-incl:
    http://www.all-incl.com/index.php?content=angebote_webpremium&partner=&domain=

    Pogo schrieb:

    Ich habe mir mal eine Klasse für solche Http-Anfragen geschrieben, wenn du willst, kann ich dir die Klasse bzw. den Quellcode schicken.

    Das wär nett 🙂 Mal schauen, ob ich es verstehe...



  • Bei mir ist das gleiche Problem, dass meine Applets nicht gelesen werden sollen. Ich soll mittels Servlets eine Seite erschaffen, die eine Applet aufruft.

    Code-Ausschnitt:

    PrintWriter out = res.getWriter();
        out
            .print("<HTML><HEAD><TITLE>Dokumentenliste für CIC</TITLE>"
                + "<link rel='stylesheet' type='text/css' href='../CIC/formate.css'></HEAD>"
                + "<BODY bgcolor=003F8B>"
                + "<table border='0' align='center'>"
                + "<div class='header'>Show Documentlist</div>"
                + "</table>"
                + "<div class='frame'>"
                + "<applet codebase='C:/Projekte/CIC/' code='HelloWorldApplet.class' width='200' height='100'></applet>"
                + "</div>"
                + "</Body></Html>");
      }
    

    Ich hab somit ja den absoluten Pfad angegeben, aber das Applet kann weder im IE noch im FF angeschaut werden. In beiden ist alles aktiviert, dass es eigentlich funktionieren müsste, aber ich bin mir auch gerade unsicher woran das liegt.

    PS: Wundert euch nicht über die '-Zeichen, weil bei Servlets muss man das so schreiben, damit der Ausdruck, der in diesen Anführungszeichen steht, als String erkannt werden kann.



  • Ich hab es immernoch nicht hinbekommen 😞

    http://www.phynet.de/asd.html

    da ist das applet eingebaut. wie ihr feststellen könnt, funktioniert es nicht. die Aufgaben.txt ist im gleichen ordner.
    den code für das applet habe ich hier:

    www.phynet.de/private/snOOfy/ExerciseApplet.java

    Kann mir wer sagen, was ich ändern muss?



  • Anscheinend fehlt ihm eine anonyme Klasse, wahrscheinlich eine von deinen Action-Listenern. Hast du ALLE vom Compiler produzierten Class Dateien in das Verzeichniss gepackt?



  • nee, hatte ich nicht^^
    aber jetzt habe ich das getan, und es funktioniert immer noch nicht.

    hier ist mal mein netbeans projekt mit den beiden .java dateien und den .class dateien. vielleicht kriegt das ja irgendwer hin, dass man das online starten kann:

    www.phynet.de/PhyNet.rar



  • Jo, seh's grad, jetzt kriegst du ne FilePermission Error: Hast du auch Schreib/Lese Zugriff auf die Datei Aufgaben.txt?
    Bin noch beim Arbeiten, wenn ich heimkomme, schau ich's mir mal genauer an, sofern du's bis dahin noch nicht selber hingekriegt hast.



  • Hast du auch Schreib/Lese Zugriff auf die Datei Aufgaben.txt?

    hmm, weiß nich... also ICH habe da schreib/lese zugriff drauf, ich hab sie ja da hinkopiert. aber woher weiß, ob das mein applet das auch hat?

    wenn ich heimkomme, schau ich's mir mal genauer an

    cool, das wär nett! ich glaube nich, dass ich das vorher noch hinkriege 😞


Anmelden zum Antworten