27

私はこのコードを持っています:

val url: URL = getClass.getResource("com/mysite/main/test.fxml")

常にnull(またはUnit) を返します。プロジェクトには次の 2 つのファイルしかありません。

MyProj/src/com/mysite/main/Test.scala
MyProj/src/com/mysite/main/test.fxml

実行するとTest.scalaurl値は常にnullになります。

プロジェクトを再構築しようとしましたが、IntelliJ IDEA を使用しています。ここで何が間違っていますか?

4

4 に答える 4

39

次の 3 つのオプションがあります。

  • 現在のパッケージへの相対パスを利用します (場所Test.class):

    getClass.getResource("test.fxml")
    
  • 絶対パスを使用できます:

    getClass.getResource("/com/mysite/main/test.fxml")
    
  • またはロードしますClassLoader(常にルートから開始することに注意してください):

    getClass.getClassLoader.getResource("com/mysite/main/test.fxml")
    

IntelliJ IDEA で、以下に追加;?*.fxmlしたことを確認します。

Settings( PreferencesMac の場合) | Compiler| | リソース パターン

于 2012-08-26T20:28:27.813 に答える
5

src/ ディレクトリから bin/ ディレクトリにコピーされていない可能性がありますか? これは再コンパイル時に発生しますが、プログラムが既にコンパイルされた後に src/ ディレクトリにドロップすると、IDE は認識しません。

于 2013-11-04T20:12:30.557 に答える
2

遅い答えですが、私はこれと同じ問題を抱えていました。根本的な原因は、settings.gradle の不適切な rootProject.name エントリでした。それを修正し、クリーンアップし、再構築すると、getClass().getResource() を使用してリソースをロードできました。うまくいけば、それは誰かを助けます。

于 2015-05-14T02:44:45.207 に答える