ホームページ >Java >&#&チュートリアル >JAR から実行するときに JavaFX で発生する「場所が設定されていません」エラーを解決するにはどうすればよいですか?
JavaFX の場所が設定されていないエラーの解決策
JAR ファイルの作成後にコマンドライン経由で JavaFX プロジェクトを実行しようとすると、 「場所が設定されていません」エラー。この問題は、リソースの読み込みとローカリゼーションのコンテキストで getClass().getResource() を正しく使用するときに発生します。
メソッド getClass().getResource() は、ファイル パスを指定するのではなく、リソースを読み込むことを目的としています。これは、クラス ローダーがファイル システムから解決しているため、IDE では機能しているように見えますが、同じ方法でリソース解決を実装していない JAR クラス ローダーを使用すると失敗する可能性があります。
解決策 1: 絶対リソース パスを使用する
問題を解決するには、/ を使用して FXML ファイルの絶対リソース パスを指定します。 separator:
<code class="java">FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));</code>
解決策 2: コントローラーの場所を使用する
または、コード構成を利用して、コントローラーに相対して FXML ファイルをロードすることもできます:
<code class="java">FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));</code>
このアプローチは、コントローラーと FXML ファイルの構造化されたパッケージ化と一致しており、 FXML とコントローラーを移動するときにインポート ステートメントを自動的に更新することで、リファクタリングを簡素化します。
以上がJAR から実行するときに JavaFX で発生する「場所が設定されていません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。