【发布时间】:2020-03-28 03:07:38
【问题描述】:
我希望有人可以在这里帮助我,因为我已经解决了一段时间的问题。在我的主课中,我使用这个命令:
System.out.println(getClass().getClassLoader().getResource("org"));
我遇到的问题是它返回:
file:/E:/Tmp/ExamplePr/PROJEKT/proj/build/classes/java/main/org
代替:
file:/E:/Tmp/ExamplePr/PROJEKT/proj/build/resources/java/main/org
问题是它进入了类目录而不是资源目录。因此,我无法访问我需要的 .fxml 文件。我正在使用 gradle 进行构建,目前正在使用 JavaFX。我尝试过类似的方法:
System.out.println(getClass().getClassLoader().getResource("/resources/java/main/org"));
但我只是得到了 null :(
你知道有什么方法可以强迫他使用绝对路径或在资源文件中寻找资源,甚至使用类似使用“../”之类的东西从 linux 上去。我没有找到任何这些
【问题讨论】:
-
无论如何你都不能列出带有资源的包的内容。 getResource() 应该与资源的路径一起使用,即文件,而不是目录。
-
您的
resources目录本质上是一个源代码树。程序在运行时无权访问其源文件。您应该将资源复制到已编译的类文件所在的同一位置。
标签: java getresource