当前位置: 首页 > 面试题库 >

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

微生俊名
2023-03-14
问题内容

我有以下目录布局:

  • 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


问题答案:

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

URL sqlScriptUrl = MyServletContextListener.class
                       .getClassLoader().getResource("sql/script.sql");


 类似资料:
  • 我有以下目录布局: src 主 Java 资源 SQL(数据库脚本) Spring(配置) 是否存在以相对的、非硬编码的方式设置该路径的方法?类似于(如果可能,最好是spring)或如何使用servletContext来指向?

  • 我想访问资源映射,而不是从我的CCS文件访问 但从我的豆子。只有EL评估可能吗?

  • 问题内容: 我正在寻找一种从给定的目录中获取所有资源名称的列表的方法,例如。 例如,给定一个路径目录x/y/z包含文件和子目录,应该返回一个包含下列字符串:, 。 它应同时适用于文件系统和jar中的资源。 我知道我可以用和 编写一个简短的代码段,但是我不想重新发明轮子。我的问题是,鉴于现有的公共可用库,最快的实现方法是什么?和堆栈都是可行的。 问题答案: 自定义扫描仪 实施自己的扫描仪。例如:

  • 问题内容: 我想从受监视的应用程序内部以编程方式获得等效的输出。我看到可以通过HotSpot诊断Bean触发二进制堆转储,但是我看不到如何获取直方图数据。可能吗 ? 问题答案: 这可能是不是最好的例子/代码,但看看这个 (我认为这仅适用于Hotspot JVM)

  • 问题内容: 基本上,我想获取python解释器的句柄,以便可以传递脚本文件来执行(从外部应用程序执行)。 问题答案: 这适用于Linux和Windows: Python 3.x Python 2.x

  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。