Ich bekomme eine NullPointerException jedes Mal, wenn ich versuche, den Inhalt meines BufferedReader zu erhalten, wenn ich das Projekt, das bereits in Jar gepackt ist, ausführen. Wenn es innerhalb von IDE (IntelliJ) läuft, gibt es kein Problem. Ich habe bereits alle vorherigen InputStreams überprüft, sie scheinen in Ordnung zu sein. Hast du vielleicht einen Tipp? Vielen Dank im Voraus!NullPointerException beim Lesen des Inhalts von BufferedReader, obwohl es nicht leer ist
String pathToFontDir = "/fonts/Open_Sans";
GraphicsEnvironment localGE = GraphicsEnvironment.getLocalGraphicsEnvironment();
final InputStream is = Session.class.getResourceAsStream(pathToFontDir);
if(is != null){
final InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8);
final BufferedReader br = new BufferedReader(isr);
List fonts = br.lines().collect(Collectors.toList()); //throws NullPointerException
if(fonts.size() > 0){
for(Object font: fonts){
InputStream fis = loader.getResourceAsStream(pathToFontDir + "/" + font);
localGE.registerFont(Font.createFont(Font.TRUETYPE_FONT, fis));
}
} else{
throw new IOException("Der angegebene Ordner enthält keine Schriftdateien!");
}
}
Ich habe auch versucht, zu überprüfen gerade, wheather meine BufferedReader alles enthält, aber es throwed wieder eine Ausnahme ohne jede Zeile Rückkehr:
String fontName;
while((fontName = br.readLine()) != null) //throws NPE as well
System.out.println(fontName);
Der Stack-Trace:
java. lang.NullPointerException bei java.io.FilterInputStream.read (Unbekannte Quelle) bei sun.nio.cs.StreamDecoder.readBytes (Unbekannte Quelle) bei sun.nio .cs.StreamDecoder.implRead (Unbekannte Quelle) bei sun.nio.cs.StreamDecoder.read (Unbekannte Quelle) bei java.io.InputStreamReader.read (Unbekannte Quelle) bei java.io.BufferedReader.fill (Unbekannte Quelle) bei java.io.BufferedReader.readLine (Unknown Source) bei java.io.BufferedReader.readLine (Unknown Source) bei java.io.BufferedReader $ 1.hasNext (Unknown Source) bei java.util.Iterator.forEachRemaining (Unknown Source) bei java.util.Spliterators $ IteratorSpliterator.forEachRemaining (Unknown Source) bei java.util.stream.AbstractPipeline.copyInto (Unknown Source) bei java.util.stream.AbstractPipeline.wrapAndCopyInto (Unknown Source) bei java.util.stream.ReduceOps $ ReduceOp.evaluateSequential (Unbekannte Quelle) bei java.util.stream.AbstractPipeline.evaluate (Unbekannte Quelle) bei java.util.stream.ReferencePipeline.collect (Unbekannte Quelle) bei main.java.backend.Session.importFontResource (Session.java:137) bei main.java.backend.Session.main (Session.java:180)
Sind Sie sicher, dass die erforderlichen Dateien in die JAR-Datei kopiert werden? –
Ja, tatsächlich habe ich es noch einmal überprüft. –
Also, im Wesentlichen versuchen Sie die 'Open_Sans' ** Datei ** zu lesen, oder? Und das ist was scheitert? –