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"); // ...
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 )));
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"); // ...
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!