小编典典

如何以编程方式获取资源目录路径

java

我有以下目录布局:

  • src

    • main

    • Java

    • resources

      • SQL (database script)
      • Spring (configuration)
        • network application

在ServletContextListener类中,我想访问SQL目录下的文件并列出它们。基本上我的问题是路径,因为我知道简而言之列出目录下的文件是:

File folder = new File(path);
File[] listOfFiles = folder.listFiles();

也许我可以使用ServletContextEventObject尝试建立路径resources/sql

public void contextInitialized(ServletContextEvent event) {
    event.getServletContext(); //(getRealPath etc.)
}

是否存在以相对的非硬编码方式设置该路径的方法?像new File("classpath:sql")(如果可能的话最好是spring)之类的东西,或者我应该如何使用ServletContext指向resources/sql


阅读 216

收藏
2020-11-13

共1个答案

小编典典

我假设在构建时将的内容src/main/resources/复制到WEB- INF/classes/您的.war内部。如果是这种情况,您可以这样做(用实数值代替类名和要加载的路径)。

URL sqlScriptUrl = MyServletContextListener.class
                       .getClassLoader().getResource("sql/script.sql");
2020-11-13