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 によってシームレスに処理できます。
以上がJavaFX アプリケーションを JARS でパッケージ化するときに発生する「場所が設定されていません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。