Java 在SpringBoot中浏览uberjar中嵌入的文件夹内容
我试图列出位于SpringBoot应用程序的/src/main/resource/文件夹中的文件夹的内容。该文件夹包含常规文件。代码在IDE(STS)中工作得非常好,但在打包应用程序之后就不行了 代码如下: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
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
)