Supportnet / Forum / Anwendungen(Java,C++...)
Java Runtime Error in der FileInputStream Klasse
Frage
folgendes Problem:
Ich arbeite mit JBuilder 6 und der darin befindlichen Java SDK 1.3.0
Hab ein Programm geschrieben, das gestern noch funktioniert hat und heute nicht mehr, wobei ich aber KEINE Änderungen vorgenommen habe!!
Wenn ich das Programm laufen lasse und während der Laufzeit eine Datei öffne, tritt folgender Fehler auf:
Uncaught error fetching image:
java.lang.NullPointerException
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:64)
at sun.awt.image.FileImageSource.getDecoder(FileImageSource.java:38)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:251)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:217)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:185)
So, das ist die gesamte Stack-Trace. Wie man sieht, ist es kein Programmfehler sondern hat etwas mit der FileInputStream Klasse zu tun. Habe es auch schon mit JDK 1.4.1 probiert, selber Fehler! Habe JBuilder schon neu installiert, hat auch nicht funktioniert
Woran kann das liegen, irgendwelche Ideen?
greetz, RMC
Antwort 1 von semi
Was steht in jbuilder6\bin\jdk.config ?
Kann es sein, dass Du JDK1.4.x drauf hast und JBuilder mit jvm.dll von JDK1.4 nicht klar kommt? (JBuilder 6 ist viel älter als JDK1.4)
Gruß,
Michael
Kann es sein, dass Du JDK1.4.x drauf hast und JBuilder mit jvm.dll von JDK1.4 nicht klar kommt? (JBuilder 6 ist viel älter als JDK1.4)
Gruß,
Michael
Antwort 2 von RMC
sorry, hab mich verschrieben, is nicht 1.3.0 sondern 1.3.1, wobei das aber jetz egal is ;)
drin steht:
javapath ../jdk1.3.1/bin/java
vmparam -Xminf0.2
vmparam -Xmaxf0.2
addpath ../jdk1.3.1/lib/tools.jar
das wars, ansonsten sind nur Kommentare drin.
Was vielleicht noch zu erwähnen ist:
Ich öffne in meinem Programm mit BufferedReader (FileReader) eine txt-Datei und möchte die zeilenweise auslesen (mit readLine()). Das hat doch eigentlich nix mit FileInputStream zu tun oder??
greetz, RMC
drin steht:
javapath ../jdk1.3.1/bin/java
vmparam -Xminf0.2
vmparam -Xmaxf0.2
addpath ../jdk1.3.1/lib/tools.jar
das wars, ansonsten sind nur Kommentare drin.
Was vielleicht noch zu erwähnen ist:
Ich öffne in meinem Programm mit BufferedReader (FileReader) eine txt-Datei und möchte die zeilenweise auslesen (mit readLine()). Das hat doch eigentlich nix mit FileInputStream zu tun oder??
greetz, RMC
Antwort 3 von semi
Doch, der FileReader mach das Lesen nur etwas einfacher (FileInputStream wird intern verwendet; siehe jdk##\src\java\io\FileReader.java). BufferedReader etwas schneller (ein mächtiges "bisschen" schneller :-))
Hast Du schon versucht, Dein Programm ausserhalb von JBuilder zu starten?
Fängst Du auch alle Exceptions ab?
Die Fehlermeldung läßt aber vermuten, dass irgendwo das Laden einer Grafikdatei scheitert.
Gruß,
Michael
Hast Du schon versucht, Dein Programm ausserhalb von JBuilder zu starten?
Fängst Du auch alle Exceptions ab?
Die Fehlermeldung läßt aber vermuten, dass irgendwo das Laden einer Grafikdatei scheitert.
Gruß,
Michael
Antwort 4 von RMC
Ja ich fang die Exceptions ab, aber sie werden nicht ausgelöst, weils ja nicht im Programm auftritt sondern weiss Gott was is...
Grafiken? Ich hab nur ein paar Icons in einem Ordner unter dem root-Verzeichnis liegen, mehr nicht.
nochmal zur der Reader-Gschicht:
in meinem Programm schauts so aus:
File filename = new File("foo.txt");
BufferdReader in = new BufferedReader (new FileReader(filename));
so...und das hat bis jetz funktioniert. Wenn ichs außerhalb von JBuilder starte (Jar-Archiv, ausgeführt mit JDK 1.3.1 weil es da keine Anzeigefehler gibt ;)) krieg ich haargenau denselben Fehler.
greetz, RMC
Grafiken? Ich hab nur ein paar Icons in einem Ordner unter dem root-Verzeichnis liegen, mehr nicht.
nochmal zur der Reader-Gschicht:
in meinem Programm schauts so aus:
File filename = new File("foo.txt");
BufferdReader in = new BufferedReader (new FileReader(filename));
so...und das hat bis jetz funktioniert. Wenn ichs außerhalb von JBuilder starte (Jar-Archiv, ausgeführt mit JDK 1.3.1 weil es da keine Anzeigefehler gibt ;)) krieg ich haargenau denselben Fehler.
greetz, RMC
Antwort 5 von semi
Der Code ist vollkommen OK.
Klingt verrückt.
Einzige Möglichkeit, die noch in Frage kommt, ist, dass die JDK-Version für Deine Windoof Version nicht geeignet ist, oder die falsche jvm.dll geladen wird (früher in PATH).
Sonst habe ich keine Ahnung, was es sein kann.
Stell es irgendwo in ein web-Verzeichnis, dann kann ich mal gucken, ob es bei mir läuft.
Gruß,
Michael
Klingt verrückt.
Einzige Möglichkeit, die noch in Frage kommt, ist, dass die JDK-Version für Deine Windoof Version nicht geeignet ist, oder die falsche jvm.dll geladen wird (früher in PATH).
Sonst habe ich keine Ahnung, was es sein kann.
Stell es irgendwo in ein web-Verzeichnis, dann kann ich mal gucken, ob es bei mir läuft.
Gruß,
Michael

