Java 在SpringBoot中浏览uberjar中嵌入的文件夹内容

Java 在SpringBoot中浏览uberjar中嵌入的文件夹内容,java,spring,spring-boot,Java,Spring,Spring Boot,我试图列出位于SpringBoot应用程序的/src/main/resource/文件夹中的文件夹的内容。该文件夹包含常规文件。代码在IDE(STS)中工作得非常好,但在打包应用程序之后就不行了 代码如下: Resource xCatRawResource = resourceLoader.getResource(xCatRawResourcePath); try( InputStream in = xCatRawResource.getInputStr

我试图列出位于SpringBoot应用程序的/src/main/resource/文件夹中的文件夹的内容。该文件夹包含常规文件。代码在IDE(STS)中工作得非常好,但在打包应用程序之后就不行了

代码如下:

    Resource xCatRawResource = resourceLoader.getResource(xCatRawResourcePath);

    try(
            InputStream in = xCatRawResource.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(in))
    ) 
    {               
            byte[] bdata = FileCopyUtils.copyToByteArray(in);
            String data = new String(bdata, StandardCharsets.UTF_8);
            // data is an empty String when app is packaged

    }
    catch(IOException ioe) {
        LOGGER.error("Unable to parse XCAT names", ioe);
    }
我尝试了不同的策略(使用ResourceUtils等),但没有成功


非常感谢你的帮助

尝试使用反射库-了解更多信息:

最新版本的POM:

<dependency>
    <groupId>org.reflections</groupId>
    <artifactId>reflections</artifactId>
    <version>0.9.12</version>
</dependency>
输出如下所示:

jsonfiles/json_file_one.json
jsonfiles/json_file_two.json
我已经在fat/uber罐中测试过了

免责声明:我不使用Spring,所以如果这是导致您出现问题的原因,那么我的解决方案可能不起作用。但我希望它会


(一个小点:我注意到,在您的问题中,您的代码定义了一个缓冲读取器
br
,您不使用它-您使用了
中的输入流

尝试使用反射库-了解更多信息:

最新版本的POM:

<dependency>
    <groupId>org.reflections</groupId>
    <artifactId>reflections</artifactId>
    <version>0.9.12</version>
</dependency>
输出如下所示:

jsonfiles/json_file_one.json
jsonfiles/json_file_two.json
我已经在fat/uber罐中测试过了

免责声明:我不使用Spring,所以如果这是导致您出现问题的原因,那么我的解决方案可能不起作用。但我希望它会


(一个小点:我注意到,在您的问题中,您的代码定义了一个缓冲读取器
br
,您不使用它-您使用的是
中的输入流)

谢谢,太好了!我要适应春天。。。是的,我跳过了部分代码以使示例更易于阅读(
br
)谢谢,太好了!我要适应春天。。。是的,我跳过了部分代码以使示例更易于阅读(
br