我如何访问Java(Intellij)中的资源文件?

问题描述 投票:2回答:1

[当资源标记的文件夹'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的父目录)之间的目录有关。我还不知道为什么会这样或如何解决它...

java intellij-idea resources project-structure
1个回答
1
投票

您的类在包projectname中,因此代码正在寻找资源文件projectname/config.properties,但该文件不在其中。

要查找资源文件config.properties,请使用:

getClass().getResource("/config.properties");

作为getResource()的javadoc中的已记录

并且请记住,资源可能不是文件系统上的文件,因此请不要使用例如getResource()进行访问。要读取资源的内容,请改用File

© www.soinside.com 2019 - 2024. All rights reserved.