Rumah > Java > javaTutorial > Mengapakah getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah getResourceAsStream Mengembalikan Null Apabila Memuatkan Sumber daripada JAR, dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Lepaskan: 2024-12-20 07:59:10
asal
393 orang telah melayarinya

Why Does getResourceAsStream Return Null When Loading Resources from a JAR, and How Can I Fix It?

Menyelesaikan "getResourceAsStream Returns Null" untuk Memuatkan Sumber daripada JAR

Apabila cuba memuatkan fail teks daripada pakej dalam JAR yang disusun, kaedah getResourceAsStream boleh mengembalikan nol, membuatkan pembangun buntu. Artikel ini menyelidiki isu ini dan menyediakan penyelesaian.

Percubaan awal untuk memuatkan fail menggunakan Class::getResourceAsStream dan pelbagai argumen semuanya mengakibatkan null dicetak. Tingkah laku yang tidak dijangka ini disebabkan oleh fakta bahawa pemuat kelas sistem, yang digunakan oleh kaedah Class::getResourceAsStream(...), tidak mengenali JAR dan oleh itu tidak boleh mengakses sumber dalam fail JAR.

Untuk menyelesaikan isu ini, adalah perlu untuk menggunakan pemuat kelas yang sesuai yang mempunyai akses kepada sumber dalam JAR. Di Java, setiap kelas dimuatkan oleh pemuat kelas, dan pemuat kelas yang memuatkan kelas Lifepaths akan mempunyai akses kepada sumber dalam JAR. Oleh itu, cara yang betul untuk memuatkan fail ialah menggunakan kaedah Class::getResourceAsStream() secara langsung, seperti yang ditunjukkan di bawah:

public static InputStream loadResource() {
    return Lifepaths.class.getResourceAsStream("/initialization/Lifepaths.txt");
}
Salin selepas log masuk

Perhatikan bahawa apabila menggunakan getResourceAsStream(nama), nama mesti bermula dengan "/ ". Ini memastikan bahawa sumber dimuatkan daripada akar laluan kelas dan penting untuk pemuat kelas untuk mengesan fail dengan betul.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan