Java从jar加载文件夹
我试图从文件夹中加载文件,但若该文件夹在jar中运行,java代码将无法加载该文件夹 在dev中,代码可以正常工作,而在服务器(java-jarmyapp)中,代码不能正常工作(springboot应用程序) 在开发模式下为True,在服务器上为false 帮助 编辑: 我想从“reports”文件夹加载所有xlsx文件 起初,该文件夹位于“资源”文件夹下的项目中 在开发(intelliJ)上运行良好,但在服务器(jar)上运行不好 所以我把文件夹移到罐子外面Java从jar加载文件夹,java,spring,jar,spring-boot,Java,Spring,Jar,Spring Boot,我试图从文件夹中加载文件,但若该文件夹在jar中运行,java代码将无法加载该文件夹 在dev中,代码可以正常工作,而在服务器(java-jarmyapp)中,代码不能正常工作(springboot应用程序) 在开发模式下为True,在服务器上为false 帮助 编辑: 我想从“reports”文件夹加载所有xlsx文件 起初,该文件夹位于“资源”文件夹下的项目中 在开发(intelliJ)上运行良好,但在服务器(jar)上运行不好 所以我把文件夹移到罐子外面 以前的代码在开发中有效,但在服务器
以前的代码在开发中有效,但在服务器上无效服务器上的文件路径是否完全相同?它是什么,您实际想要做什么?你想用这个文件夹做什么?如果您想从它访问资源,您可以这样做,无论是从文件系统还是从.jar文件。如果你想列出它的资源,使用Spring会变得有点棘手,但可行。我最终将所有excel文件的名称放入一个文件(在开发模式下),并逐行读取该文件以打开excel文件(在服务器模式下),该文件的路径在服务器上是否完全相同?这是什么,你真正想做什么?你想用这个文件夹做什么?如果您想从它访问资源,您可以这样做,无论是从文件系统还是从.jar文件。如果您想列出它的资源,使用Spring会变得有点棘手,但可行。我最终将所有excel文件名放入一个文件(在开发模式下),并逐行读取该文件以打开excel文件(在服务器模式下)
Path path = Paths.get("/home/toto/reports")
File dir = new File(path.toAbsolutePath().toUri());
log.info(path + " is directory : " + dir.isDirectory());
URL resource = getClass().getClassLoader().getResource("reports");
Path path = Paths.get(resource.toURI());
Files.walk(path)
.forEach(filePath -> {
// excel file
Workbook workbook = new XSSFWorkbook(Files.newInputStream(excelFilePath));
...
});