我有以下maven项目结构,也可以在这里看到(projectstructure):
-maws20.algorithm
|-src/main/resources
|-images
|-menuBanner
|-linearSearchMenuBannerUnsorted.png
|-src/main/java
|-linearSearch.menu
|-LinearSearchMenuBanner.java
我正在尝试用以下行加载linearchermenubaner.java文件中的.png图像:
@Override
public Image loadBackgroundImage() {
return new Image(LinearSearchMenuBanner.class.
getResource("/images/menuBanner/linearSearchMenuBannerUnsorted.png").toString());
}
这不是正确的相对路径吗?因为我得到以下错误:
...
Caused by: java.lang.NullPointerException: Cannot invoke "java.net.URL.toString()" because the return value of "java.lang.Class.getResource(String)" is null
at linearSearch.menu.LinearSearchMenuBanner.loadBackgroundImage(LinearSearchMenuBanner.java:20)
...
(第20行为上图所示)
我想我了解java中的相对路径
谢谢你的帮助。
3条答案
按热度按时间r3i60tvu1#
谢谢你的帮助。我不知道出了什么问题,但是当我创建了一个全新的工作区之后,创建所有新文件并将源代码复制到新文件中。那就行了。
我不知道为什么。。。
但非常感谢:)
mznpcxlj2#
删除第一个反斜杠
/
,这实际上意味着绝对路径而不是相对路径。试试这个:要了解更多信息,您可以访问以下链接:spring classpath file access
rjzwgtxy3#
我想这和你的 Package 有关。该图像需要在服务器文件系统,jar资源将无法工作!
类路径资源
你在包裹里
search.menu
您需要访问中的文件资源images/menuBanner
所以您需要加载一个资源:这里有其他选择: https://www.baeldung.com/spring-classpath-file-access