Scala getClass.getResource() returning null

后端 未结 4 1604
孤城傲影
孤城傲影 2021-01-01 11:10

I have this code:

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

and it always returns null (or Unit

相关标签:
4条回答
  • 2021-01-01 11:11

    You have three options:

    • take advantage of relative path to your current package (where Test.class is):

      getClass.getResource("test.fxml")
      
    • you can use absolute path:

      getClass.getResource("/com/mysite/main/test.fxml")
      
    • or load through the ClassLoader (note that it always start from root):

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

    In IntelliJ IDEA, make sure you have added ;?*.fxml to the:

    Settings (Preferences on Mac) | Compiler | Resource Patterns.

    0 讨论(0)
  • 2021-01-01 11:31

    Late answer but I just had this same problem. The root cause was an incorrect rootProject.name entry in my settings.gradle. Once I fixed that, cleaned, and rebuilt my resource were able to load using getClass().getResource(). Hopefully that helps somebody.

    0 讨论(0)
  • 2021-01-01 11:34

    If it does not work, you can try with ClassLoader:

    ClassLoader.getSystemResource("filename").getPath
    

    The filename should be in the same directory layer

    0 讨论(0)
  • 2021-01-01 11:37

    Possibly it's not being copied to the bin/ directory from the src/ directory? This happens on recompilation, but if you drop it into the src/ directory after the program is already compiled, the IDE won't know.

    0 讨论(0)
提交回复
热议问题