当资源标记文件夹“resources”不在源标记文件夹“java”内时,我似乎无法访问资源文件。
这是我的项目结构(遵循 Maven 结构,但我仍然喜欢它):
|src
|-main
|--java (marked as sources folder)
|--|projectname
|--|-main.java
|--|-Class2.java
|--|- ..
|--|-Classx.java
|--resources (marked as resources folder)
|--|config.properties
|--|images
this is how it looks in IntelliJ
我已将所有可能的更改应用于以下行,但似乎仍无法从资源文件夹加载 config.properties 文件或任何其他文件。
getClass().getResource("config.properties");
这是在主类中被调用的。
这应该可以正常工作吗?为什么不呢?
如何访问具有此项目结构的资源?
大爱,洁夫
编辑1:
经过同样的测试,它似乎与标记的源文件夹和内容根目录(这里是 src 的父目录)之间的目录有关
我还不知道这是为什么或如何解决它...
解决了:
事实证明,删除输出文件夹并重新启动 IntelliJ 可以修复它。虽然我不得不做两次......
奇怪的。
我为此纠结了两天,这就是 ^.^
最佳答案
您的类(class)在包裹 projectname
中,所以代码正在寻找资源文件 projectname/config.properties
,但文件不存在。
寻找资源文件config.properties
, 用:
getClass().getResource("/config.properties");
如 记录在案 在
getResource()
的 javadoc 中.请记住,资源可能不是文件系统上的文件,所以不要使用例如
File
访问它。要读取资源的内容,请使用 getResourceAsStream()
反而。
关于java - 如何在 Java (Intellij) 中访问资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60998158/