Auflösen der Null-Ausgabe von getResourceAsStream
Wenn der Versuch, eine Textdatei aus einem gepackten JAR mithilfe von Class::getResourceAsStream abzurufen, null zurückgibt, zeigt dies an Probleme mit dem Ressourcenlademechanismus. Die folgende Lösung behebt dieses Problem:
-
Geändertes Laden von Ressourcen: Anstelle von Lifepaths.class.getClass().getResourceAsStream(...), das den Systemklassenlader aufruft (bei dem es häufig an Einblick in gepackte Ressourcen mangelt), verwenden Sie Lifepaths.class.getResourceAsStream(...) direkt. Dadurch wird sichergestellt, dass Ressourcen vom Klassenlader geladen werden, der Lifepaths geladen hat, sodass dieser auf die gepackten Ressourcen zugreifen kann.
-
Führender Schrägstrich: Bei der Angabe des Ressourcenpfads in getResourceAsStream(name) ist dies der Fall Es ist unbedingt erforderlich, ihm einen Schrägstrich (/) voranzustellen. Dies ist nicht immer notwendig, wurde aber beobachtet, um potenzielle Probleme zu beheben.
Durch die Implementierung dieser Änderungen sollte der bereitgestellte Code den Inhalt der Textdatei erfolgreich aus dem JAR-Paket laden und drucken.
Das obige ist der detaillierte Inhalt vonWarum gibt „getResourceAsStream' beim Zugriff auf Ressourcen in einer JAR Null zurück und wie kann ich das Problem beheben?. 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