使用自定义包结构访问资源文件夹(Maven)

时间:2014-12-18 17:56:21

标签: java maven resources

我把我的一个项目改成了maven。问题是我不能再获得资源了。

结构如下:

-src -main -resources -java -com -test -client

资源文件夹里面是我需要访问的图像和fxml文件。

到目前为止,我使用Client.class.getResource("FileList.fxml")加入了这些文件。 客户端是主要方法。

使用此命令Client.class.getResource("").getPath()进行解析我得到了这个路径:com / test / client。

如何以corerct方式访问资源文件夹?

1 个答案:

答案 0 :(得分:1)

Maven会自动将src/main/resources文件夹中的所有文件复制到您的构建目录中。

如果一切正常,您应该在构建目录的类路径的根目录中看到资源中的任何内容。

例如,如果您的构建目录是' bin'然后你应该看到:

bin
 |--- *.fxml
 |--- <other resources>
 |--- com
       |--- test
              |--- client
                      |--- *.class

将您的Client.class.getResource("FileList.fxml")电话改为:

Client.class.getResource("/FileList.fxml") 

表示资源位于类路径的根目录,而不是用于定位资源的类的根目录。

您注意到,当您尝试此操作时:Client.class.getResource("").getPath()返回com/test/client。这告诉你没有/&#34; root&#34;是该类所在的目录,而不是类路径根目录。

关键是领先的/,它并不完全直观。