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!