Heim > Java > javaLernprogramm > Wie greife ich über eine Java-Desktopanwendung auf eine in ein JAR eingebettete XML-Datei zu?

Wie greife ich über eine Java-Desktopanwendung auf eine in ein JAR eingebettete XML-Datei zu?

Barbara Streisand
Freigeben: 2024-12-06 21:12:20
Original
394 Leute haben es durchsucht

How to Access an XML File Embedded in a JAR from a Java Desktop Application?

Zugriff auf eine XML-Datei in einer JAR-Datei von einer Java-Desktop-Anwendung aus

In diesem Szenario versuchen Sie, auf eine XML-Datei in einem zuzugreifen JAR-Datei aus einem separaten JAR, das als Desktop-Anwendung ausgeführt wird. Während Sie die URL zur Datei erfolgreich erhalten haben, führt die Übergabe an einen FileReader mithilfe eines Strings zu einer FileNotFoundException.

Sie konnten jedoch Bildressourcen aus demselben JAR lesen, indem Sie die URL mit einem ImageIcon verwendeten Konstrukteur. Dies zeigt an, dass die von Ihnen zum Abrufen der URL verwendete Methode korrekt ist.

URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");
// ...
Nach dem Login kopieren

Das Problem tritt auf, wenn versucht wird, die XML-Datei zu analysieren:

XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( this );
xr.setErrorHandler( this );
xr.parse( new InputSource( new FileReader( filename )));
Nach dem Login kopieren

Lösung:

Die falsche Methode zum Lesen der XML-Datei ist die Verwendung des neuen FileReader (Dateiname). Um dies zu beheben, verwenden Sie die Methode java.lang.Class.getResourceAsStream(String). Es stellt einen InputStream für die durch den Namen angegebene Ressource bereit, sodass Sie die XML-Datei lesen können.

URL url = getClass().getResourceAsStream("/xxx/xxx/xxx/services.xml");
// ...
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie greife ich über eine Java-Desktopanwendung auf eine in ein JAR eingebettete XML-Datei zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage