Dateiladen mit getClass().getResource()
Bei der Arbeit mit Ressourcendateien, wie z. B. Eigenschaftendateien, ist die Verwendung von getClass().getResource(path) um sie zu laden. Allerdings treten beim Ausführen von Code über die Befehlszeile Unterschiede im Vergleich zu einer IDE wie Eclipse auf.
Verhalten innerhalb von Eclipse
In Eclipse ist getClass().getResource( Die Methode „Pfad“ lädt Dateien effektiv aus dem Quellordner. Wenn die Ressourcendatei (z. B. Test.properties) im selben Paket wie die Java-Datei abgelegt wird, kann innerhalb von Eclipse ohne Probleme darauf zugegriffen werden.
Problem mit der Befehlszeilenbereitstellung
Beim Bereitstellen der Anwendung außerhalb von Eclipse über die Befehlszeile ist die Ressourcendatei möglicherweise nicht im Klassenpfad vorhanden. Folglich kann getClass().getResource(path) die Datei nicht laden, was zu einer Nullzeigerausnahme führt.
Lösung
Um dieses Problem zu beheben, stellen Sie sicher, dass Die Ressourcendatei ist im Klassenpfad enthalten. Dies kann erreicht werden, indem die Datei im selben Verzeichnis wie die kompilierte Klassendatei abgelegt oder in eine JAR-Datei gepackt wird.
Alternativer Ansatz
Anstelle der Verwendung von getClass ().getResource(path), erwägen Sie die Verwendung von getClass().getResourceAsStream(path), um einen InputStream für die Ressourcendatei zu erstellen. Diese Methode vermeidet die Notwendigkeit, den URI in eine Datei zu konvertieren, und übernimmt das Laden von Dateien aus verschiedenen Quellen, z. B. dem Dateisystem, einer JAR-Datei oder über ein Netzwerk.
Achten Sie abschließend auf das übergebene Argument die getClass().getResourceAsStream-Methode. Durch die Verwendung von Foo.class.getResourceAsStream("Test.properties") wird die Datei aus demselben Paket wie Foo geladen, während Foo.class.getResourceAsStream("/com/foo/bar/Test.properties") die Datei aus dem lädt angegebenes Paket.
Das obige ist der detaillierte Inhalt vonWie lade ich Ressourcendateien über die Befehlszeile mit „getClass().getResource()“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!