Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan Ralat \'Lokasi tidak Ditetapkan\' dalam JavaFX Apabila Berjalan dari JAR?

Bagaimana untuk Menyelesaikan Ralat \'Lokasi tidak Ditetapkan\' dalam JavaFX Apabila Berjalan dari JAR?

Susan Sarandon
Susan Sarandonasal
2024-11-02 20:57:02390semak imbas

How to Resolve the

JavaFX Location Not Set Error Resolution

Apabila cuba menjalankan projek JavaFX melalui baris arahan selepas mencipta fail JAR, anda mungkin menghadapi Ralat "Lokasi tidak ditetapkan". Isu ini timbul apabila menggunakan getClass().getResource() dengan betul dalam konteks pemuatan sumber dan penyetempatan.

Kaedah getClass().getResource() bertujuan untuk memuatkan sumber, bukan menentukan laluan fail. Walaupun ini mungkin kelihatan berfungsi dalam IDE kerana pemuat kelas menyelesaikannya daripada sistem fail, ia mungkin gagal apabila menggunakan pemuat kelas JAR, yang tidak melaksanakan resolusi sumber dengan cara yang sama.

Penyelesaian 1: Menggunakan Laluan Sumber Mutlak

Untuk menyelesaikan isu, nyatakan laluan sumber mutlak fail FXML menggunakan pemisah /:

<code class="java">FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));</code>

Penyelesaian 2: Menggunakan Lokasi Pengawal

Sebagai alternatif, anda boleh memanfaatkan organisasi kod anda dan memuatkan fail FXML berbanding pengawalnya:

<code class="java">FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));</code>

Pendekatan ini sejajar dengan pembungkusan berstruktur pengawal dan FXML anda fail dan memudahkan pemfaktoran semula dengan mengemas kini penyata import secara automatik apabila memindahkan FXML dan pengawal.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Lokasi tidak Ditetapkan\' dalam JavaFX Apabila Berjalan dari JAR?. 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