Heim >Java >javaLernprogramm >Warum gibt getResourceAsStream beim Laden von Ressourcen aus einem JAR Null zurück?
getResourceAsStream gibt beim Laden von Ressourcen aus JAR Null zurück
Beim Versuch, eine Textdatei aus einem JAR-Paket mit Class::getResourceAsStream zu laden, müssen Sie kann auf einen Null-Rückgabewert stoßen. Um dieses Problem zu beheben, berücksichtigen Sie Folgendes:
Die Methode Lifepaths.class.getClass().getResourceAsStream(...) verwendet den Systemklassenlader, der möglicherweise keinen Zugriff auf Ressourcen innerhalb der JAR hat. Verwenden Sie stattdessen Lifepaths.class.getResourceAsStream(...), um den Klassenlader zu nutzen, der die Lifepaths-Klasse geladen hat, und stellen Sie so den Zugriff auf JAR-Ressourcen sicher.
Stellen Sie beim Aufrufen von getResourceAsStream(name) sicher, dass der Name mit einem beginnt Schrägstrich „/“. Diese Vorgehensweise wird allgemein empfohlen, um potenzielle Probleme zu vermeiden.
Hier ist ein Beispiel des korrigierten Codes:
public static void execute() { System.out.println(Lifepaths.class.getResourceAsStream("/initialization/Lifepaths.txt")); }
Das obige ist der detaillierte Inhalt vonWarum gibt getResourceAsStream beim Laden von Ressourcen aus einem JAR Null zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!