有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我把我的一个项目转到了maven。问题是我再也找不到资源了

结构如下所示:

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

在资源文件夹中有一个我需要访问的图像和fxml文件

到目前为止,我使用:Client.class.getResource("FileList.fxml")访问了这些文件。 客户机拥有主要的方法

使用这个命令进行调试Client.class.getResource("").getPath()我得到以下路径:com/test/client

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


共 (1) 个答案

  1. # 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。这是在没有/的情况下告诉您,“根”是该类所在的目录,而不是类路径根

    关键是前面的/,这不是完全直观的