有 Java 编程相关的问题?

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

java使用ClassLoader方法检索类下的所有资源作为输入流

我的问题是一个你认为很常见的问题,但到目前为止我还没有找到解决办法

在Tomcat 5.5下构建Java web应用程序(尽管要求它可以部署在任何地方,比如WebLogic环境下,因此需要将资源作为流加载)。良好的实践要求将资源文件放在WEB-INF/classes下,并使用ClassLoader的getResourceAsStream()方法加载。当您知道要加载的资源的名称时,一切都很好

我的问题是,我需要加载子目录中的所有内容(包括递归加载到非空子目录中)

例如,如果我在WEB-INF/classes下有以下内容:

folderX/folderY

folderX/folderY/fileA。属性

folderX/fileB。属性

我需要文件。属性和文件B。要加载的属性类,在应用程序启动之前不知道它们的名称(即我需要能够从WEB-INF/classes下的任何目录中任意加载资源)

最优雅的方式是什么?我可以询问什么对象来找到我需要的信息(每个所需资源的资源路径)?非特定于servlet的解决方案是最好的(如果可能的话,将其全部保存在类加载框架内)

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    据我所知,没有这种能力,因为类加载器只会尝试加载它所要求的东西。它不会预取类路径上的所有项,也不会将它们视为目录结构

    我解决这个问题的方法是在构建时在一个文本文件中创建一个目录列表,列出所有相关资源,并将其包含在war中,然后以这种方式进行操作