Memahami Pemuatan Sumber dengan getClass().getResource()
Di Java, mengakses sumber seperti imej memerlukan kaedah khusus. Satu pendekatan yang biasa digunakan ialah kaedah getClass().getResource(). Kaedah ini membenarkan pembangun untuk mendapatkan semula sumber daripada classpath, tetapi ia berbeza daripada mengakses terus fail daripada sistem fail.
Seperti yang dinyatakan dalam soalan, cubaan memuatkan imej menggunakan getClass().getResource() menghasilkan null imgURL, menunjukkan kegagalan. Walau bagaimanapun, menyatakan laluan secara eksplisit dalam pembina ImageIcon berjaya memuatkan imej. Percanggahan ini timbul kerana getClass().getResource() mencari sumber dalam classpath, bukan dalam sistem fail setempat.
Classpath ialah koleksi direktori dan fail JAR yang mengandungi kelas Java yang disusun dan sumber lain yang diperlukan untuk permohonan. Apabila aplikasi Java dijalankan, pemuat kelas mencari sumber dalam laluan kelas menggunakan laluan yang ditentukan.
Untuk menggunakan getClass().getResource() dengan berkesan, adalah penting untuk memahami sifat laluan kelas. Laluan kelas boleh diubah suai melalui pembolehubah persekitaran classpath atau pilihan -cp apabila melancarkan aplikasi Java. Jika sumber yang dimuatkan berada dalam direktori di luar classpath, ia tidak akan ditemui menggunakan getClass().getResource().
Untuk membuat kesimpulan, sebab imej tidak dapat dimuatkan menggunakan getClass(). getResource() ialah laluan yang digunakan menunjuk ke fail dalam sistem fail tempatan, bukan dalam classpath. Untuk menyelesaikan isu ini, pastikan sumber diletakkan dalam laluan kelas dan boleh diakses oleh pemuat kelas semasa masa jalan.
Atas ialah kandungan terperinci Mengapa imej saya dimuatkan dengan ImageIcon tetapi tidak dengan getClass().getResource()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!