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!