Heim >Java >javaLernprogramm >Warum gibt getResourceAsStream beim Laden von Ressourcen aus einem JAR Null zurück?

Warum gibt getResourceAsStream beim Laden von Ressourcen aus einem JAR Null zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 08:42:09753Durchsuche

Why Does getResourceAsStream Return Null When Loading Resources from a JAR?

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!

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