Greifen Sie auf die Datei in der JAR-Datei zu?

8

Ich muss auf eine Datei zugreifen können, die in einer kompilierten JAR-Datei gespeichert ist. Ich habe herausgefunden, wie man die Datei zum Projekt hinzufügt, aber wie würde ich es im Code referenzieren? Wie kann ich eine Datei von der JAR-Datei an einen Speicherort auf der Festplatte des Benutzers kopieren? Ich weiß, dass es Dutzende Möglichkeiten gibt, auf eine Datei zuzugreifen (FileInputStream, FileReader, ect.), Aber ich weiß nicht, wie ich in mich selbst schauen soll.

    
LRFLEW 02.03.2011, 18:51
quelle

5 Antworten

17

Sie könnten etwas wie folgt verwenden:

InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile);

Wenn sich foo.txt im Stammverzeichnis Ihrer JAR-Datei befindet, verwenden Sie:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("foo.txt");

nimmt an, dass die Klasse in der gleichen JAR-Datei wie die Ressource ist, glaube ich.

    
typo.pl 02.03.2011, 18:55
quelle
4

Sie können den Inhalt einer JAR-Datei mit dem JarFile Klasse.

Hier ist ein Beispiel, wie Sie eine bestimmte Datei aus einer JAR-Datei erhalten und extrahieren können:

%Vor%     
someguy 02.03.2011 19:05
quelle
4

Sie können verwenden getResource () , um eine URL für eine Datei im Klassenpfad oder getResourceAsStream () , um stattdessen einen InputStream zu erhalten.

Zum Beispiel:

%Vor%     
Isaac Truett 02.03.2011 18:54
quelle
1

Sehen Sie sich die JarFile-Klasse an. Alles, was Sie brauchen, um den InputStream eines bestimmten Eintrags in der JAR-Datei zu erhalten, ist da.

    
MJB 02.03.2011 18:53
quelle
0

wollte nur hinzufügen, wenn wir auf Datei innerhalb Jar zugreifen möchten, die sich im folgenden Pfad befindet:

%Vor%

Muss folgenden Code verwenden (achten Sie darauf, dass am Anfang des Pfads NO "/" (Schrägstrich) steht):

%Vor%     
Constantin Zagorsky 21.02.2015 23:12
quelle

Tags und Links