Rumah > Java > javaTutorial > Mengapa Aplikasi JavaFX Saya Melemparkan Ralat \'Lokasi Tidak Ditetapkan\' Apabila Menjalankan dari Fail Jar?

Mengapa Aplikasi JavaFX Saya Melemparkan Ralat \'Lokasi Tidak Ditetapkan\' Apabila Menjalankan dari Fail Jar?

DDD
Lepaskan: 2024-11-03 01:53:02
asal
364 orang telah melayarinya

Why Does My JavaFX Application Throw a

JavaFX: Menyelesaikan masalah Ralat "Lokasi Tidak Ditetapkan" dalam Pelaksanaan Fail Jar

Semasa pelaksanaan fail jar JavaFX, pengguna mungkin menghadapi ralat "Lokasi tidak ditetapkan". Artikel ini bertujuan untuk menangani isu ini, terutamanya dalam senario di mana kod berjalan dengan betul dalam Eclipse.

Definisi Masalah

Apabila mencipta fail jar daripada projek dengan yang khusus struktur folder dan melaksanakannya melalui baris arahan, ralat "Lokasi tidak ditetapkan" dipaparkan. Struktur direktori projek termasuk fail FXML dan pengawal yang disusun dalam pakej tertentu.

Analisis Sebab

Punca ralat terletak pada cara sumber dimuatkan menggunakan getClass( ).getResource(...). Kaedah ini menjangkakan laluan sumber yang mematuhi konvensyen pengecam Java. Walau bagaimanapun, dalam kod yang disediakan, laluan sumber mengandungi .., yang bukan pengecam yang sah. Akibatnya, sumber tidak dapat diselesaikan apabila fail jar dilaksanakan.

Penyelesaian 1: Memastikan Laluan Sumber yang Betul

Untuk menyelesaikan isu, ubah suai laluan sumber untuk memastikan ia mengikut konvensyen pengecam Java. Contohnya:

FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));
Salin selepas log masuk

Penyelesaian 2: Memanfaatkan Lokasi Pengawal untuk Pemuatan FXML

Dalam kes di mana fail dan pengawal FXML disusun dalam pakej yang sama, adalah mungkin untuk menggunakan lokasi pengawal untuk pemuatan FXML. Ini menghapuskan keperluan untuk menentukan laluan mutlak ke fail FXML:

FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));
Salin selepas log masuk

Faedah Menggunakan Lokasi Pengawal

Menggunakan lokasi pengawal menawarkan beberapa kelebihan:

  • Kemas kini automatik untuk mengimport kenyataan semasa pemfaktoran semula.
  • Penyelenggaraan kod yang dipermudahkan dan mengurangkan risiko ralat.
  • Penjajaran semula jadi dengan struktur projek.

Atas ialah kandungan terperinci Mengapa Aplikasi JavaFX Saya Melemparkan Ralat 'Lokasi Tidak Ditetapkan' Apabila Menjalankan dari Fail Jar?. 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