Rumah >Java >javaTutorial >Mengapakah getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR?

Mengapakah getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 08:42:09706semak imbas

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

getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR

Apabila cuba memuatkan fail teks daripada pakej JAR menggunakan Class::getResourceAsStream, anda mungkin menghadapi nilai pulangan nol. Untuk menyelesaikan isu ini, pertimbangkan perkara berikut:

Kaedah Lifepaths.class.getClass().getResourceAsStream(...) menggunakan pemuat kelas sistem, yang mungkin tidak mempunyai akses kepada sumber dalam JAR. Sebaliknya, gunakan Lifepaths.class.getResourceAsStream(...) untuk menggunakan pemuat kelas yang memuatkan kelas Lifepaths, memastikan akses kepada sumber JAR.

Apabila menggunakan getResourceAsStream(nama), pastikan nama itu bermula dengan garis miring ke hadapan "/". Amalan ini biasanya disyorkan untuk mengelakkan isu yang berpotensi.

Berikut ialah contoh kod yang diperbetulkan:

public static void execute() {
    System.out.println(Lifepaths.class.getResourceAsStream("/initialization/Lifepaths.txt"));
}

Atas ialah kandungan terperinci Mengapakah getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn