Rumah  >  Artikel  >  Java  >  Mengapakah getClass().getResource() menyebabkan NullPointerExceptions dalam Eclipse dan Command Line?

Mengapakah getClass().getResource() menyebabkan NullPointerExceptions dalam Eclipse dan Command Line?

DDD
DDDasal
2024-11-06 19:53:03231semak imbas

Why does getClass().getResource() cause NullPointerExceptions in Eclipse and Command Line?

Isu Pemuatan Fail dengan getClass().getResource() dalam Eclipse dan Command Line

Memuatkan sumber menggunakan getClass().getResource() boleh mencabar apabila bekerja dengan Eclipse dan baris arahan, yang membawa kepada pengecualian penuding nol. Untuk menyelesaikan isu ini, kita perlu memahami cara pemuat kelas beroperasi.

Isu Laluan Kelas

getClass().getResource() menggunakan pemuat kelas untuk mencari sumber. Ini menunjukkan bahawa sumber mesti berada dalam laluan kelas untuk boleh diakses. Apabila melaksanakan program dalam Eclipse, direktori bin, yang terdiri daripada fail kelas terkumpul dan fail sumber, ditambah secara automatik pada laluan kelas. Oleh itu, sumber berjaya dimuatkan.

Walau bagaimanapun, apabila menjalankan program daripada baris arahan, direktori bin tidak disertakan dalam laluan kelas secara lalai. Akibatnya, sumber itu kekal tidak boleh diakses, mengakibatkan pengecualian penuding nol.

Kaedah Pemuatan Sumber

Apabila memuatkan sumber, amalan terbaik berikut harus dipatuhi:

getClass().getResourceAsStream("Test.properties")

Kaedah ini memastikan bahawa sumber itu diambil menggunakan pemuat kelas, yang serasi dengan kedua-dua sistem fail tempatan dan senario penggunaan lain seperti fail JAR atau pemuatan rangkaian.

Dengan menangani laluan kelas isu dan menggunakan kaedah pemuatan sumber yang disyorkan, kami boleh menghapuskan pengecualian penuding nol yang dihadapi dengan berkesan semasa memuatkan sumber menggunakan getClass().getResource().

Atas ialah kandungan terperinci Mengapakah getClass().getResource() menyebabkan NullPointerExceptions dalam Eclipse dan Command Line?. 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