Rumah  >  Artikel  >  Java  >  Bagaimana untuk Membetulkan Ralat \'Lokasi tidak ditetapkan\' Semasa Membungkus Aplikasi JavaFX dengan JARS?

Bagaimana untuk Membetulkan Ralat \'Lokasi tidak ditetapkan\' Semasa Membungkus Aplikasi JavaFX dengan JARS?

DDD
DDDasal
2024-11-03 07:11:30881semak imbas

How to Fix the

JAVAFX: Mengendalikan Ralat "Lokasi tidak ditetapkan" Semasa Membungkus dengan JAR

Kod anda berjalan lancar dalam Eclipse, tetapi apabila dibungkus sebagai JAR dan dilaksanakan melalui cmd, ia menghadapi ralat "Lokasi tidak ditetapkan". Isu ini timbul kerana kaedah getClass().getResource(...) mengharapkan sumber, bukan laluan fail langsung.

Dalam Java, sumber ditakrifkan menggunakan hierarki pengecam Java yang sah yang dipisahkan dengan garis miring (/ ) dan nama sumber (shortname.extension). Apabila memuatkan kelas daripada sistem fail, ini sama dengan laluan fail. Walau bagaimanapun, apabila menggunakan mekanisme pemuatan kelas lain, adalah penting untuk mematuhi spesifikasi ini.

Menyelesaikan Ralat

Untuk membetulkan isu, gantikan kod semasa anda dengan yang berikut :

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

Pendekatan Alternatif: Lokasi Pengawal

Memandangkan fail FXML dan pengawal anda berada dalam pakej yang sama, anda boleh memanfaatkan lokasi pengawal untuk memuatkan FXML:

FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));

Kaedah ini lebih mantap dan memudahkan pemfaktoran semula masa hadapan, kerana pengkompil mengesahkan nama pakej secara automatik. Selain itu, sebarang perubahan pada struktur pakej boleh dikendalikan dengan lancar oleh Eclipse.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Lokasi tidak ditetapkan\' Semasa Membungkus Aplikasi JavaFX dengan JARS?. 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