Heim >Java >javaLernprogramm >Wie greife ich in Java auf Ressourcen aus JAR-Dateien zu?

Wie greife ich in Java auf Ressourcen aus JAR-Dateien zu?

Barbara Streisand
Barbara StreisandOriginal
2024-11-06 16:36:02660Durchsuche

How to Access Resources from JAR Files in Java?

Ressourcen aus JAR-Dateien laden

In Ihrer Anwendung laden Sie Ressourcen mithilfe von WinProcessor.class.getResource("repository"). toString(), das einen Dateipfad bereitstellt, wenn es von einer IDE ausgeführt wird, aber eine JAR-URL zurückgibt, wenn es als JAR-Datei ausgeführt wird. Diese Diskrepanz entsteht, weil JAR-Dateien Ressourcen in einem komprimierten und gepackten Format enthalten.

Informationen zum Laden von Ressourcen in JARs

Wenn Sie Ihre Anwendung in eine JAR-Datei packen, wird deren Inhalt angezeigt , einschließlich Ressourcen, werden im Archiv gespeichert. Wenn Sie versuchen, über eine JAR-Datei auf eine Ressource zuzugreifen, behandelt die JVM diese anders als eine Datei im Dateisystem. Die getResource-Methode gibt eine URL zurück, die auf den Speicherort der Ressource innerhalb der JAR verweist.

Lösung: Verwendung von getResourceAsStream

Um dieses Problem zu beheben, wird empfohlen, stattdessen getResourceAsStream zu verwenden getResource. getResourceAsStream gibt einen InputStream zurück, der es Ihnen ermöglicht, den Inhalt der Ressource direkt aus der JAR-Datei zu lesen. Anschließend können Sie den InputStream verwenden, um die erforderlichen Objekte wie einen ConfigurationContext zu erstellen oder Systemeigenschaften festzulegen.

Hier ist ein aktualisiertes Beispiel für die Verwendung von getResourceAsStream:

InputStream repositoryInputStream = WinProcessor.class.getResourceAsStream("repository");
ConfigurationContext ctx = (ConfigurationContext) ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryInputStream, null);

InputStream fileNameInputStream = WinProcessor.class.getResourceAsStream("file_name");
System.setProperty("javax.net.ssl.trustStore", fileNameString);

Durch die Verwendung von getResourceAsStream können Sie dies vermeiden das Problem der Pfadunterschiede zwischen der Ausführung über eine IDE und der Ausführung als JAR-Datei. Der InputStream verweist korrekt auf den Speicherort der Ressource innerhalb der JAR, sodass Sie auf deren Inhalte zugreifen können.

Das obige ist der detaillierte Inhalt vonWie greife ich in Java auf Ressourcen aus JAR-Dateien zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn