Hallo!
Immer wenn ich in ein mit JBuilder 5 Personal erstelltest Projekt Swing-Elemente einfüge und die class auf meinen Server hochlade, bekomme ich dort beim Anzeigen folgende Statusmeldung:
load: TestApp can't be instantiated
Im Appletviewer lokal funktioniert es und wenn ich keine Swing-Elemente verwende auch auf dem Server.
Woran liegt das, wie kann ich das beheben?
Bin dankbar für jeden Hinweis!
Gruß
Benny
Hi Benny,
das glaub ich daß das nicht funktioniert. Hatte auch mal das Problem. Die Sache ist wie folgt:
Wenn du das Applet im Appletviewer betrachtest, werden die Klassen des JDK1.3 verwendet. Schließlich ist der Appletviewer ja Teil des JDK. Deshalb funktioniert die Sache.
In einem Browser werden allerdings nicht die Klassen des JDK verwendet. Ein Browser hat seine eigene Virtual Machine, was heißt er hat seine eigenen Java-Klassen. Und das sind Klassen einer Java-Version, in der es noch kein Swing gab. Der Browser kennt die Klassen nicht. Am besten du verwendest bei Applets nur die AWT-Klassen und nicht Swing.
Mit einem Trick lässt sich jedoch der Browser dazu überreden, auf seine eigenen Klassen zu verzichten und die Java-Klassen des JDKs zu benutzen. Hierzu muß ein PlugIn auf dem Clientrechner installiert sein und das JDK. Beides auf der Sun-Homepage erhältlich. Zusätzlich muß die HTML-Seite durch einen HTML-Konverter so angepasst werden, daß der Browser überhaupt das PlugIn verwendet. Dieser Konverter ist auch auf der Sun-Homepage erhältlich. Ist allerdings alles ein ziemlicher Aufwand.
Vor allem wenn das Applet für die Allgemeinheit ist, kannst du nicht erwarten, daß alle das Plugin und das JDK1.3 installiert haben. Soetwas ist höchstens in einem Intranet sinnvoll, wo man weiß was auf den Rechnern installiert ist.
Gruß
Jochen
Hallo Jochen,
vielen Dank für die ausführliche Antwort.
Ja, ich werde mich dann wohl doch auf die AWT-Klassen beschränken…
Gruß
Benny