Matthias: Java-Applet: Probleme mit jar-file

Beitrag lesen

Hallo,

danke für die schnelle Antwort.

Wenn Du Deine reservationsystem.jar mal mit einem ZIP/JAR-Archivprogramm (WinZip o. ä.) öffnest, sollte der Inhalt so aussehen:
Datei             Pfad
MANIFEST.MF       META-INF\ ...
Initiator.class   reservationssystem\startup\ ...

Die Datei Initiator.class muss also im JAR-Archiv in einem Verzeichnis startup liegen, welches wiederum in einem Verzeichnis reservationssystem liegen muss. Ist das so?

Ja, das ist so. Wenn ich das jar-file wieder entpacke, erhalte ich einen Ordner reservationsystem, der (u.a.) einen Ordner startup mit der Initiator.class enthält. (Außerdem sind in dem jar-file noch der META-INF-Ordner und (wie üblich) die .classpath, .project und java.policy.applet-files enthalten.)

Die erste Zeile in der Initiator.java, aus der die Initiator.class compiliert wurde, sollte

package reservationssystem.startup;


> lauten. Wenn das falsch ist, kommt dann aber eine andere Fehlermeldung:  
> java.lang.NoClassDefFoundError: reservationssystem/startup/Initiator (wrong name: [hier der falsche Packagename]/Initiator)  
  
Auch das ist (leider?) richtig. Ich bin auch alle anderen Klassen noch einmal durchgegangen. In der ersten Zeile steht überall die package-Deklaration.  
  
Ich versteh allmählich die Welt nicht mehr. Ich habe ja (wie schon in meinem ersten posting gesagt) die Verzeichnisstruktur mit allen .class-files separat auf den Server geladen. Dort liegt jetzt also ein Ordner reservationsystem, dessen Inhalt unter der Adresse  
http://mitglied.lycos.de/username/reservationsystem/  
abrufbar ist.  
Dieser Ordner enthält u.a. den Ordner startup mit der Initiator.class.  
Das Ganze lässt sich dann problemlos über  
<applet codebase="http://mitglied.lycos.de/username/" code="reservationsystem/startup/Initiator.class" width="1000" height="730">  
</applet>  
starten, wobei die Start-Datei unter  
http://www.mitglied.lycos.de/username/reservationsystem/start1.html  
zu finden ist. Bei der Variante funktioniert aber leider javamail nicht mehr...  
  
Aber wenn ich die reservationsystem.jar (mit eben diesem Aufbau  
reservationsystem/startup/Initiator.class)  
im Ordner reservationsystem starten will, werfen die Browser (egal ob IE, FF oder Opera) die Exception.  
  
  
Viele Grüße,  
Matthias  
  
  
  
  
  

> Hallo,  
>   
> > vielen Dank für sie Hinweise. Leider funktioniert es aber immer noch nicht.  
> > Hier ist die trace des Fehlers:  
> >   
> > Laden: Klasse reservationsystem.startup.Initiator nicht gefunden  
> > java.lang.ClassNotFoundException: reservationsystem.startup.Initiator  
>   
> Laut trace der Standardfall, dass die .class Datei nicht gefunden wurde.  
>   
> > Der Code sieht momentan so aus:  
> > <applet codebase="http://mitglied.lycos.de/username/reservationsystem/" archive="reservationsystem.jar" code="reservationsystem.startup.Initiator"  width="1000" height="730">  
> > </applet>  
>   
> Wenn Du Deine reservationsystem.jar mal mit einem ZIP/JAR-Archivprogramm (WinZip o. ä.) öffnest, sollte der Inhalt so aussehen:  
> Datei             Pfad  
> MANIFEST.MF       META-INF\  
> ...  
> Initiator.class   reservationssystem\startup\  
> ...  
>   
> Die Datei Initiator.class muss also im JAR-Archiv in einem Verzeichnis startup liegen, welches wiederum in einem Verzeichnis reservationssystem liegen muss. Ist das so?  
>   
> Die erste Zeile in der Initiator.java, aus der die Initiator.class compiliert wurde, sollte  
>   
> ~~~java
  

> package reservationssystem.startup;  
> 

lauten. Wenn das falsch ist, kommt dann aber eine andere Fehlermeldung:
java.lang.NoClassDefFoundError: reservationssystem/startup/Initiator (wrong name: [hier der falsche Packagename]/Initiator)

viele Grüße

Axel