# Applet starten



## sharky (10. Aug 2011)

Hallo zusammen,

ich bin neu hier in der Runde und wie kann es auch anders sein ... ich hab ein Problem (oder nur ein Brett vorm Kopf), dass mich gerade daran hindert mein privates "Projekt" voran zu treiben. Nur damit nicht zu viel erwartet wird... ich bin ein absoluter Anfänger ... mein Java-Kurs liegt 10 Jahre zurück und gerafft habe ich damals nicht viel aber vor vier Wochen habe ich mich mal wieder rangetraut und versuche seit dem mein Wissen über Online-Quellen aufzubauen.

Was habe ich eigentlich geplant?
Ich habe einen lizensierten Account bei einem Provider für Multimedia-Inhalte, bei dem zur Zeit ca. 1000 Files liegen, die ich herunterladen könnte aber spätestens nach 30 Tagen wieder entfernt werden. Nun möchte ich nicht mühselig manuell mitschreiben, welches File ich schon geladen habe und welches nicht, daher wollte ich über Greasemonkey die Archiv Seite des Providers auslesen, die AJAX-Requests zum ermitteln der URLs automatisiert abschicken und dann die Daten an ein Applet weitergeben, in einer lokalen Datenbank speichern und über das Applet auch herunterladen.

Ich war eigentlich schon soweit, dass ich die Seite auslesen konnte und ich hab auch mal über eine JAVA-Applikation ein einfaches Download-Tool realisert. Woran ich zur Zeit scheiter ist ein lokales Applet in eine Seite einzubinden, da ich später über Greasemonkey die Seite des Providers dahingehend manipulieren müsste, dass mein Applet dort erscheint.

Um es erstmal ganz simpel zu halten, habe ich ein Applet erstellt, dass ein Bild anzeigt und versucht dieses in eine lokale html Datei einzubinden, aber egal was ich mache entweder ich bekomme eine ClassNotFound Exception oder der Firefox friert ein.

Ich hoffe mal, dass mir jemand das Brett vorm Kopf entfernen kann.

Gruss
Holger aka sharky

Anbei die Daten:
Mein Applet (in der Testumgebung von NetBeans funktioniert es)

```
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test_applet_grease;


import java.applet.*;
import java.awt.*;
/**
 *
 * @author sharky
 */
public class Test_applet_grease extends Applet {
    Image bild;  
    /**
     * @param args the command line arguments
     */
    public void init() {      
        bild = getImage(getDocumentBase(),"http://www.save.tv/STV/IMG/global/remote_top.jpg");       
        
    }   
    public void paint (Graphics g) {
            g.drawImage(bild,0,0,this);       
    }
}
```

Die lokale HTML-Seite (Speicherort ist E:\ ... das Archiv liegt auch dort)

```
<html>
<body>
<applet codebase="file:///E:/" code="Test_applet_grease.class" archive="test_applet_grease.jar"  >
</applet>
</body>
</html>
```

CLASSPATH

```
.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip;E:\;E:\test_applet_grease.jar
```

JAVA-Konsoleninhalt (nur wenn der FF nicht einfriert)


> Detected from bootclasspath: E:\\ANWEND~1\\Tools\\Java\\JRE7-x86\\lib\\deploy.jar
> security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.
> security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws
> security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws
> ...


----------



## sharky (10. Aug 2011)

okay jetzt nicht schlagen ... aber nachdem ich den Post geschrieben habe ... habe ich nochmal was anderes ausprobiert, wovon ich eigentlich ausgegangen bin, dass ich das schon gemacht habe und jetzt hat sich die Exception verändert und jetzt muss ich erstmal wieder googeln



> Java-Plug-in 10.0.0.147
> JRE-Version verwenden 1.7.0-b147 Java HotSpot(TM) Client VM
> Benutzer-Home-Verzeichnis = C:\Users\sharky
> ----------------------------------------------------
> ...


----------



## sharky (10. Aug 2011)

narf ... naja das Problem saß wie immer 20 cm vor dem Bildschirm ... naja ... nächster Schritt ... bis zum nächsten Mal 

achja und sollte nochmal ein Anfänger wie ich darüber stolpern ... ich hab folgendes gemacht..

1. Ich hatte das Attribut CODE in der HTML nicht richtig gesetzt
*Test_applet_grease.class* statt *test_applet_grease.Test_applet_grease.class*
2. Die jar Datei war nicht signiert ... siehe FAQ


----------



## sharky (10. Aug 2011)

hmmm ... jetzt bin ich gerade wieder ratlos ... ich gehe mal davon aus, dass es wieder was mit den Security Policies zu tuen hat nur wo genau weiss ich halt nicht ... wenn jemand ein Stichwort für mich hat mit dem ich weitergoogeln kann wäre ich echt super glücklich.

Also ich habe jetzt den Stand erreicht, dass ich über Greasemonkey, dass Applet in die Seite des Providers (selbstverständlich nur lokal bei mir) einbinde.

```
var bodytag = document.getElementsByTagName('body')[0];
    var newapplet = document.createElement("APPLET");
   
    newapplet.archive = "test_applet_grease.jar"
    newapplet.code = "test_applet_grease.Test_applet_grease.class";
    //newapplet.codeBase ="http://localhost/";
    newapplet.codeBase = "file:///E:/";
        
    var h1first = document.getElementsByTagName('H1')[0];
    bodytag.insertBefore(newapplet, h1first);
```


```
<applet codebase="file:///E:/" code="test_applet_grease.Test_applet_grease.class" archive="test_applet_grease.jar"></applet>
```

Seltsamer weise springt Java nun gar nicht mehr an ... das System versucht also noch nicht mal das Applet zu starten. Ändere ich Codebase auf "http://localhost/" kommt eine ClassNotFoundException was auch korrekt ist, da ich ja auf meiner lokalen Maschine keinen Webserver betreibe. Aber mit "File.." passiert nüschts ... in der Konsole rührt sich nix.

Kopiere ich den kompletten von Greasemonkey modifizierten Code in eine lokale html datei funktionierts wieder einwandfrei egal wo die Datei auf meinem Rechner liegt.

Hat jemand ne Idee?

Gruss

Holger aka sharky


----------



## sharky (10. Aug 2011)

So hab jetzt mal den Mini Webserver 2010 von Aidex Software installiert und den Codebase-Eintrag von _"File..."_ auf _"Http://localhost/"_ geändert und nun funktionierts. 
Das ist zwar im Grunde genommen zufrieden stellend aber die direkte Angabe über "File.." hätte mir besser gefallen. 
Wenn mal jemand ne Idee hat, warum das System vorher noch nicht mal versucht hat, das Applet zu starten, kann er/sie mich ja gerne per PM anschreiben.


----------

