2009-03-08 14 views
5

Ich frage mich, ob Sie die Hauptklasse (oder die Klasse mit der init-Methode, was auch immer) in ein Paket setzen und es immer noch in einem Browser ausführen lassen? Die meiste Zeit lege ich meine Applets in das (Standard-Paket), aber mein Applet ist hier in einem Paket, also kann ich es noch in die Webseite einbetten?Java-Applet mit init() in einem Paket?

Ich habe es mit wenig Ergebnissen gegoogelt. Angenommen, ich habe MyApplet.class in einem Verzeichnis namens app in der JAR-Datei MyApp.jar.

Ich habe diese versucht, ohne Erfolg:

<applet archive="MyApp.jar" code="MyApplet.class"> 
<applet archive="MyApp.jar" code="app/MyApplet.class"> 
<applet archive="MyApp.jar" code="/app/MyApplet.class"> 
<applet archive="MyApp.jar/app/" code="MyApplet.class"> 
<applet archive="MyApp.jar" codebase="app/" code="MyApplet.class"> 

Jede dieser mir einen ClassNotFoundException gibt.

Vielen Dank im Voraus.

Antwort

3

Das Archiv-Attribut sollte den Dateinamen des Glases enthalten, und es sollte im selben Verzeichnis wie die Webseite platziert werden .

Die Klassendatei im code-Attribut sollte den vollständig qualifizierten Klassennamen enthalten, der durch Schrägstriche getrennt ist, um die Verzeichnisstruktur anzugeben.

Daher sollte Test 2 in Ihrer Liste von Versuchen erfolgreich sein, sofern MyApp.jar tatsächlich neben der HTML-Seite vorhanden ist. Darüber hinaus sollte MyApp.jar das Verzeichnis "app" im Stammverzeichnis enthalten, das die MyApplet-Klassendatei enthalten sollte. Vergessen Sie nicht, die MyApplet-Klasse selbst im App-Paket zu haben.

Sie können sich this page als Referenz ansehen.

1

Ich bin nicht sicher, aber haben Sie versucht, wie dies ?:

<applet archive="MyApp.jar" code="MyApplet"> 
3

Nun, Sie listen das Paket in einer gepunkteten Form und Sie legen nicht die '.class' am Ende.

<applet code="packagefolder1.packagefolder2.MyApplet" archive="folder1/folder2/MyApp.jar"> 

</applet>