Heim >Java >javaLernprogramm >Warum wird die Klassenpfadressource bei der Ausführung als Jar-Datei nicht gefunden?

Warum wird die Klassenpfadressource bei der Ausführung als Jar-Datei nicht gefunden?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 12:52:29403Durchsuche

Why does Classpath Resource Not Found when Running as Jar File?

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!

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