Laden von Dateien mit getClass().getResource() in Befehlszeilenbereitstellungen
Die Methode getClass().getResource() ermöglicht das Laden von Ressourcen Dateien aus dem Klassenpfad. Beim Ausführen von Anwendungen über die Befehlszeile können Entwickler jedoch auf eine Nullzeiger-Ausnahme stoßen, wenn auf die Ressourcendatei im aktuellen Klassenpfad nicht zugegriffen werden kann.
Eclipse vs. Befehlszeile
In Eclipse werden der Quellordner und sein Inhalt beim Erstellen automatisch zum Klassenpfad hinzugefügt. Daher stehen Ressourcendateien, die im selben Ordner wie die Java-Datei abgelegt sind, zum Laden mit getClass().getResource() zur Verfügung, wenn die Anwendung in der IDE ausgeführt wird.
Hierarchie der Befehlszeilenbereitstellung
Wenn Sie die Anwendung als JAR-Datei bereitstellen oder über die Befehlszeile ausführen, muss der Klassenpfad explizit so konfiguriert werden, dass er die Ressourcendateien enthält. Wenn sich die Ressourcendatei nicht im Klassenpfad befindet, kann getClass().getResource() sie nicht finden.
Korrekte Verwendung von getClass().getResource()
Um eine Abhängigkeit vom Dateisystem zu vermeiden, wird empfohlen, getClass().getResourceAsStream() zu verwenden, anstatt den URI in ein Dateiobjekt zu konvertieren. Diese Methode gibt direkt einen InputStream für die Ressource zurück und ermöglicht das Laden, auch wenn die Datei nicht physisch im Dateisystem vorhanden ist.
ClassPath-Konfiguration
Um sicherzustellen, dass die Ressourcendatei im Klassenpfad zugänglich ist, wenn es über die Befehlszeile ausgeführt wird, sollte es in die JAR-Datei gepackt oder in einem Verzeichnis abgelegt werden, das Teil des Klassenpfads ist. Wenn Sie die Option -classpath im Java-Befehl verwenden, stellen Sie sicher, dass das Verzeichnis mit der Ressourcendatei enthalten ist.
Fazit
Durch Verständnis der Nuancen der Klassenpfadkonfiguration während des Befehls Mithilfe von getClass().getResource() können Entwickler mithilfe von getClass().getResource() Ressourcendateien effektiv laden und ihre Anwendungen nahtlos außerhalb der Eclipse-Umgebung ausführen.
Das obige ist der detaillierte Inhalt vonWie lade ich Ressourcen mit getClass().getResource() in Befehlszeilenbereitstellungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!