Wenn beim Laden von Ressourcen eine Anwendung von einer IDE ausgeführt wird, kann der Pfad zur Ressource anders sein als bei der Ausführung eine JAR-Datei. Dies kann zu Problemen führen, wenn die Anwendung auf den spezifischen Dateipfad angewiesen ist.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, getResourceAsStream anstelle von getResource zu verwenden. getResourceAsStream gibt einen InputStream zurück, der zum Lesen der Ressourcendaten verwendet werden kann, ohne sich mit dem Dateipfad auseinandersetzen zu müssen.
Eine andere Möglichkeit besteht darin, die Ressource vor der Verwendung in eine temporäre Datei zu extrahieren. Dies kann mit der Methode „Files.copy“ erfolgen.
Es ist jedoch wichtig zu beachten, dass manche Codes darauf angewiesen sein können, dass sich die Daten in einer physischen einzelnen Datei im Dateisystem befinden. In diesem Fall ist das Bündeln der Ressource in einer JAR-Datei möglicherweise keine Option.
Codebeispiel:
InputStream inputStream = WinProcessor.class.getResourceAsStream("repository"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { // Do something with the line } reader.close();
Das obige ist der detaillierte Inhalt vonWie lade ich Ressourcen korrekt aus einer Jar-Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!