Im Gegensatz zu getClassLoader().getResourceAsStream(filename)
verwendet die Version, die Sie getClass().getResourceAsStream(filename)
verwenden, einen Pfad relativ zum Speicherort der Klasse und nicht zum Stamm des Klassenpfads. Sie müssen entweder den absoluten Pfad getClass().getResourceAsStream("/" + filename)
verwenden oder die ClassLoader
Version verwenden.
Stellen Sie außerdem sicher, dass sich "Ressourcen" auf Ihrem Klassenpfad befinden (wenn Sie Maven verwenden, sollte es "src / main / resources" relativ zu Ihrer pom.xml sein). Wenn dies der Fall ist, müssen Sie "Ressourcen" nicht in Ihren Dateinamen einschließen, da dies der Classpath-Stamm ist.
this.getClass().getResourceAsStream("resources/" + fileName)
lädt die Datei aus dem Klassenpfad, da new File("resources/" + fileName)
die Datei von Ihrem Arbeitsverzeichnis lädt (das Projektstammverzeichnis in Eclipse). Um das erstere zum Laufen zu bringen, müssen Sie das jar, das resources
dir enthält, zu Ihrem Klassenpfad hinzufügen.
Tags und Links java resources jar bufferedreader