Klassenpfad-Ressource bei Ausführung als Jar-Datei nicht gefunden
Beim Laden einer Klassenpfad-Ressource mit einer @Value-Annotation ist es wichtig, die Dateien zu berücksichtigen Standort. Wenn die Ressource in eine JAR-Datei eingebettet ist, kann die Verwendung von resources.getFile() zum Abrufen ihres Inhalts zu Ausnahmen führen, da getFile() erwartet, dass die Ressource im Dateisystem verfügbar ist.
Zum Abrufen der Ressourcen Um Inhalte aus einer JAR-Datei abzurufen, verwenden Sie stattdessen „resource.getInputStream()“. Dadurch können Sie den Inhalt der Ressource unabhängig von ihrem Standort lesen.
Hier ist ein Beispiel dafür, wie Sie Ihre Anwendung so ändern, dass sie getInputStream() verwendet:
<code class="java">private void testResource(Resource resource) { try { InputStream inputStream = resource.getInputStream(); printFileContents(inputStream); } catch (IOException ex) { logger.error(ex.toString()); } } private void printFileContents(InputStream inputStream) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); bufferedReader.lines().forEach(logger::debug); }</code>
Das obige ist der detaillierte Inhalt vonWarum wird die Klassenpfadressource bei der Ausführung als Jar-Datei nicht gefunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!