2012-04-06 7 views
2

Mit Bezug auf meine previous question, möchte ich fragen, wie kann ich eine Datei in verschiedenen Ordner in die ähnliche .jar lesen.Zugriff auf Dateien unter .jar in einer Swing-Anwendung?

Die Ordnerhierarchie und Details werden mit dieser Frage bereitgestellt. Mein Hauptproblem ist mit einer Codezeile:

JTextPane textPane = ... //general initialization 
textPane.setPage("path/file.html"); 

Das Problem ist, ich das file.html in meinem .jar halten müssen.

Außerdem würde ich gerne Vorschläge zu diesem Thema wissen.

+0

möglich Duplikat von [Java: Laden Sie eine Ressource in einem Jar] (http://StackOverflow.com/Questions/574809/JavaLoad-Aresource-Contained-in-Ajar) – jtahlborn

Antwort

6

Zum Laden von Ressourcen in einem JAR können Sie Class.getResource() verwenden. Das funktioniert gut, ebenso, wenn sie von einer normalen Ordnerstruktur nicht in einem JAR-Laden:

textPane.setPage(ThisClass.class.getResource("relative/path/to/file.html")); 

Der Weg ist hier egal aus welchem ​​Ordner ThisClass.class ist in der Regel ist es besser, explizit die Namen die Klasse statt this.getClass() mit, was da wollte. Am Ende wird ein anderer (und nicht beabsichtigter) Ort gesucht, wenn diese Methode für eine Unterklasse aufgerufen wird.

+0

Kann ich verwenden 'ClassName.class.getResource()' hier? – Asif

+0

Hoppla, mein Schlechter - ja, das wäre richtig. –

+0

Ich verwende: 'MyClass.class.getResource ("/resources/files/help/file.html ");', das gibt den richtigen Pfad mit 'System.out.println()' zurück, aber 'NullPointerException' mit' textPane. setPage() '. . . ?? – Asif