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.
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.
Sie können den Inhalt einer JAR-Datei mit dem JarFile
Hier ist ein Beispiel, wie Sie eine bestimmte Datei aus einer JAR-Datei erhalten und extrahieren können:
%Vor%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%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%