[当资源标记的文件夹'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的父目录)之间的目录有关。我还不知道为什么会这样或如何解决它...
您的类在包projectname
中,因此代码正在寻找资源文件projectname/config.properties
,但该文件不在其中。
要查找资源文件config.properties
,请使用:
getClass().getResource("/config.properties");
作为getResource()
的javadoc中的已记录。
并且请记住,资源可能不是文件系统上的文件,因此请不要使用例如getResource()
进行访问。要读取资源的内容,请改用File
。