Scala getClass.getResource()返回null

我有这个代码:

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

它总是返回null (或Unit )。 我在项目中只有两个文件:

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

当我运行Test.scalaurl值始终为null。

我刚试过重建项目,我正在使用IntelliJ IDEA。 我在这做错了什么?

你有三个选择:

  • 利用当前包的相对路径( Test.class所在的Test.class ):

     getClass.getResource("test.fxml") 
  • 你可以使用绝对路径:

     getClass.getResource("/com/mysite/main/test.fxml") 
  • 或者通过ClassLoader (注意它总是从root开始):

     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()加载。 希望这有助于某人。