2010-12-11 8 views
0

In meinem Projekt läuft ich meine RessourceJava FileNotFoundException wenn eine JAR-Datei

getClass().getResource("/package/my_reource.file").getFile() 

Alle gut funktioniert mit laden, wenn ich das Projekt in Netbeans laufen, aber wenn ich die jar-Datei ausführen, bekomme ich FileNotFoundException, warum?

Danke.

Antwort

1

Ich glaube nicht, dass Sie den Dateinamen benötigen. Sie brauchen eher seinen Inhalt. Verwenden Sie also getResourceAsStream(), um die InputStream zu erhalten und den Inhalt von dort zu lesen.

+0

getFile() gibt den Dateinamen als Zeichenfolge und nicht als Datei zurück. ;) –

+0

Danke Peter für die Erinnerung :). Aktualisiert. – Bozho

+0

Ich weiß das, ich habe versucht mit getResourceAsStrem und der Strem ist null. Wie auch immer, ich muss eine Jaspis-Reportdatei füllen, also reicht ein String-Pfad. JasperFillManager.fillReport – blow

0

Überprüfen Sie Ihr Glas. Ich glaube, dass deine Datei nicht da ist. Die Gründe hängen davon ab, wie Sie Ihr Glas erstellen. Wenn Sie NetBeans verwenden, überprüfen Sie Ihre Einstellungen. Wahrscheinlich enthält es nur * .class-Dateien? Das Gleiche gilt für Ameisen. Markierung überprüfen

+0

Danke, aber die Datei ist in das Jar-Paket! – blow

0

Die getFile() gibt den Dateipfad der von getResource() zurückgegebenen URL zurück Also wenn es im Jar ist, müssen Sie das Jar lesen, um die Datei zu bekommen. Wenn es auf dem Dateisystem ist, können Sie mit FileInputStream lesen.

Wenn Sie die Input erhalten möchten und Sie nicht erstellen, wo Sie es aus der Benutzung getResourceAsStream get()

2

Sie InputStream verwenden können, anstatt getClass().getResource("/package/my_reource.file").getFile()

sollten Sie verwenden

getClass.getResourceAsStream("/package/myresource.file") 
Verwandte Themen