Dumme Fehlermeldungen bei Java Applet

Ich habe ein Applet programmiert, bei dem ich aus 3 Dateien lese.
2 sind Text Dateien, und 1 ist ein Bild das angezeigt wird.
Das Funzt auch bei vielen verschiedenen Rechnern.
Allerdings habe ich einen ganz hartnäckigen Fall, er benutzt Linux und bekommt immer beim Laden des Bildes eine Security Exception, auf den meisten Windows Rechnern läuft es.

Falls ihr euch das Applet mal anschauen wollt (vielleicht auch unter Linux), dann schaut doch mal hier:
http://Ivan.Russenmafia.net

und net so doll meckern, ich bin kein guter Programmierer :wink:

Gruß Wizard of War

Moin

Ich habe ein Applet programmiert, bei dem ich aus 3 Dateien
lese.

Von wo liest du die Dateien und wie ganu bestimmst du ihre „Addresse“ (Quell-Code) ?

auf den meisten Windows Rechnern läuft es.

Weil die Microsoft-JVM nicht so genau auf die Datei-rechte aufpasst. (Wohingehen die Blackdown-JVM für Linux etwas genauer an der Definition von Sun dran ist…)

cu

Von wo liest du die Dateien und wie ganu bestimmst du ihre
„Addresse“ (Quell-Code) ?

Die Parameter filename und filename2 stehen so in der HTML Datei drin, sonst durfte er die nicht öffnen.

String fileName = getParameter(„filename“);
img = getImage(getDocumentBase(),fileName);
MediaTracker mt = new MediaTracker(this);
mt.addImage(img, 0);
try
{
//Warten, bis das Image vollständig geladen ist,
mt.waitForAll();
} catch (InterruptedException e)
{
fehler = true;
System.out.println("Fehler beim laden der Karte: "+e.toString());
}

dort bei mt.waitForAll() kommt bei Linux eine Fehlermeldung,
aber selbst wenn ich das ausklammere dann kommt später eine Fehlermeldung wenn ich das Image anzeigen will.

Das lesen der Text-Dateien mache ich so:
String fileName2 = getParameter(„filename2“);
DataInputStream file;
try
{
URL url = new URL(getDocumentBase(), fileName2);
file = new DataInputStream(url.openStream());
}catch (Exception e)
{
System.out.println(e.toString());
}

Das funzt ja, aber das mit dem image oben geht net.

Moin

dort bei mt.waitForAll() kommt bei Linux eine Fehlermeldung,
aber selbst wenn ich das ausklammere dann kommt später eine
Fehlermeldung wenn ich das Image anzeigen will.

Grobe Theorie: Der kann das Bild nicht umsetzen, sprich: er bekommt die Daten, kann aber mit dem Bild-format nix anfangen. Versuchs mal mit normalen (nicht progressiv) jpeg… ?

(Und poste den Stack-track von der Exception, wenn du kannst)

cu

Laut ACDSee ist es nicht progressiv codiert.
Und leider kann ich die Exception gar nicht selber bauen, ich habe nämlich kein Linux.

Aber sobald ich den Linux User wieder erreiche frage ich ihn mal danach.

danke erstmal, leider ist unser Forum derzeit down also wird es wohl erst morgen was mit der Fehlermeldung.
Und was ist ein Stack-track?

Gruß Wiz

Also, ich sehe folgende Fehlermeldung (Win2000, Mozilla 1.5):

http:/ /ivan.russenmafia.net/Uga-Agga/output.txt
java.lang.NoSuchMethodError
 at Karte.init(Karte.java:67)
 at sun.applet.AppletPanel.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

Zu finden in der Java Console. (Das Leerzeichen habe ich reingemacht,
damit es kein Link wird.)

Sieht so aus, als kennt er die Methode in Zeile 67 nicht.

Gruss, Patrick

Hi,
also bei mir funktionierts: RedHat 8, Opera 7.23, Java 1.4.2

Gruß,
Andreas

Hab’s noch unter Mozilla 1.4.1 getestet, und da funktioniert es nicht. Komisch …

Hier ist der Stack Trace:
load: class Karte.class not found.
java.lang.ClassNotFoundException: Karte.class
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:162)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:123)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:566)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:617)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1856)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:546)
at sun.applet.AppletPanel.run(AppletPanel.java:298)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at sun.net.NetworkClient.doConnect(NetworkClient.java:137)
at sun.plugin.net.protocol.http.HttpClient.doConnect(HttpClient.java:106)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:402)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:618)
at sun.net.www.http.HttpClient.(HttpClient.java:306)
at sun.net.www.http.HttpClient.(HttpClient.java:267)
at sun.plugin.net.protocol.http.HttpClient.(HttpClient.java:41)
at sun.plugin.net.protocol.http.HttpClient.New(HttpClient.java:62)
at sun.plugin.net.protocol.http.HttpURLConnection.createConnection(HttpURLConnection.java:101)
at sun.plugin.net.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:158)
at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:393)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:272)
at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:263)
at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:43)
at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:152)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:149)

Gruß,
Andreas

Zeile 67: hold += Character.toString©;
also ich würde mal tippen, du hast ne alte Java Version installiert.
Was steht denn in der Console ganz oben ?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

load: class Karte.class not found.
java.lang.ClassNotFoundException: Karte.class

Hmm, muss wohl an Mozilla liegen denn die Klasse existiert auf jeden Fall.
Aber wer benutzt denn Mozilla :wink:

Danke für eure Hilfe!
Wiz

Zeile 67: hold += Character.toString©;
Was steht denn in der Console ganz oben ?

Version 1.3.1_08

Muss ja nicht zwingend der Fehler sein. Laut API-Doc kann
1.3.1 dieses Konstrukt interpretieren.

Mit IE 5.5 bekomme ich uebrigens auch den Fehler.

Gruss, Patrick

hmm, wirklich komisch, ich würde aber trotzdem auf 1.4.1 updaten.
Oder warten bis 1.5 rauskömmt…

hmm, wirklich komisch, ich würde aber trotzdem auf 1.4.1
updaten.
Oder warten bis 1.5 rauskömmt…

Was machst du wenn dein Kunde 1.3 verwendet und er nicht bereit
zum Updaten ist oder es aus firmenpolitischen Gruenden nicht kann?

Naja, halb so wild, ich will damit nur sagen, dass updaten nicht immer
der einfache Weg ist.

Gruss, Patrick

Jo das ist wohl war, aber da das ja nur Privat ist, stört mich das wenig. :wink:
Und da das ja bei Version 1.3.1 auch funzen sollte verstehe ich den Fehler eh nicht…