JAVAFX: JAR로 패키징하는 동안 "위치가 설정되지 않았습니다" 오류 처리
코드는 Eclipse에서 원활하게 실행되지만 JAR을 실행하고 cmd를 통해 실행하면 "위치가 설정되지 않았습니다" 오류가 발생합니다. 이 문제는 getClass().getResource(...) 메소드가 직접 파일 경로가 아닌 리소스를 기대하기 때문에 발생합니다.
Java에서 리소스는 슬래시(/)로 구분된 유효한 Java 식별자 계층을 사용하여 정의됩니다. ) 및 리소스 이름(shortname.extension). 파일 시스템에서 클래스를 로드할 때 이는 파일 경로와 동일합니다. 그러나 다른 클래스 로딩 메커니즘을 사용할 때는 이러한 사양을 준수하는 것이 중요합니다.
오류 해결
문제를 해결하려면 현재 코드를 다음으로 바꾸세요. :
FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));
대체 접근 방식: 컨트롤러 위치
FXML과 컨트롤러 파일이 동일한 패키지에 있으므로 컨트롤러 위치를 활용하여 FXML을 로드할 수 있습니다.
FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));
이 방법은 컴파일러가 패키지 이름을 자동으로 확인하므로 더 강력하고 향후 리팩토링을 단순화합니다. 또한 패키지 구조에 대한 모든 변경 사항은 Eclipse에서 원활하게 처리될 수 있습니다.
위 내용은 JARS로 JavaFX 애플리케이션을 패키징할 때 \'위치가 설정되지 않았습니다\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!