私はこのコードを持っています:
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.scala
を実行すると、url
の値は常にnullになります。
私はちょうどプロジェクトを再構築しようとしました、私はIntelliJ IDEAを使用しています。ここで何が悪いのですか?
次の3つのオプションがあります。
現在のパッケージへの相対パスを利用します(ここでTest.class
is):
getClass.getResource("test.fxml")
絶対パスを使用できます:
getClass.getResource("/com/mysite/main/test.fxml")
またはClassLoader
からロードします(常にルートから始まることに注意してください):
getClass.getClassLoader.getResource("com/mysite/main/test.fxml")
IntelliJ IDEAで、;?*.fxml
へ:
Settings
(MacではPreferences
)| Compiler
| リソースパターン。
おそらくそれはsrc /ディレクトリからbin /ディレクトリにコピーされていませんか?これは再コンパイル時に発生しますが、プログラムがすでにコンパイルされた後でsrc /ディレクトリにドロップすると、IDEはわかりません。
遅い答えですが、私はこれと同じ問題を抱えていました。根本的な原因は、settings.gradleの不正なrootProject.nameエントリでした。それを修正し、クリーンアップして再構築すると、getClass()。getResource()を使用してリソースをロードできました。うまくいけば、それは誰かを助けます。