Rumah > Java > javaTutorial > Mengapa JavaFX Melemparkan Ralat \'Lokasi Diperlukan\' Walaupun Fail FXML berada dalam Pakej yang Sama?

Mengapa JavaFX Melemparkan Ralat \'Lokasi Diperlukan\' Walaupun Fail FXML berada dalam Pakej yang Sama?

DDD
Lepaskan: 2024-11-04 02:11:29
asal
729 orang telah melayarinya

Why Does JavaFX Throw a

JavaFX "Lokasi Diperlukan" Ralat Walaupun Berada dalam Pakej Yang Sama

Penerangan Isu:

Melaksanakan program JavaFX boleh mengakibatkan ralat "java.lang.NullPointerException: Lokasi diperlukan", walaupun fail FXML berada dalam pakej yang sama dengan kelas Aplikasi.

Punca Asas:

Ralat berlaku apabila FXMLLoader cuba memuatkan fail FXML menggunakan getClass().getResource(). Dalam persekitaran projek Maven, pendekatan ini mungkin gagal jika konfigurasi modul Maven tidak betul atau tetapan laluan kelas tersalah konfigurasi.

Betulkan dengan ClassLoader:

Untuk menyelesaikan isu dalam Maven , gunakan getClass().getClassLoader().getResource() untuk mencari fail FXML. Kaedah ini mendapatkan semula sumber daripada laluan kelas projek semasa, memastikan bahawa Maven boleh menyelesaikan lokasinya dengan betul.

Kod Diubah Suai:

Ganti getClass().getResource() dengan getClass().getClassLoader().getResource() dalam baris berikut:

<code class="java">Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));</code>
Salin selepas log masuk
<code class="java">Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("main.fxml"));</code>
Salin selepas log masuk

Pertimbangan Maven Tambahan:

Untuk projek Maven, pastikan bahawa modul Maven yang sepadan dikonfigurasikan dengan betul kerana sumber adalah penting. Pembungkusan dan kebergantungan yang betul adalah penting untuk mengelakkan konflik dan salah konfigurasi.

Atas ialah kandungan terperinci Mengapa JavaFX Melemparkan Ralat 'Lokasi Diperlukan' Walaupun Fail FXML berada dalam Pakej yang Sama?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan