如何迭代位于运行的.jar文件外部的文件夹



我的java应用程序体系结构有问题。我想提供一个用Spring Boot生成的简单.jar文件。在运行.jar之后,我需要迭代显示在另一个文件夹中的文件。这是我的目录的层次结构:

在此处输入图像描述

  1. 我用.bat或sh启动我的.jar,用java-jar myApp.jar
  2. 我必须迭代myApp/files中存在的所有文件

这看起来很简单,但我找不到方法!我尝试了很多在这里找到的东西,但都不起作用!

我尝试过这个,但有一个nullPointer。。。

File jarFile = new File(myMainClass.class.getProtectionDomain().getCodeSource().getLocation().toURI());
String jarLocation = jarFile.getPath();

你能帮我试一下吗!

谢谢!

编辑你的.bat文件,像这样开始进入你的myApp文件夹

@echo off
#do stuff
cd %myApp_folder%
java -jar myapp.jar

你可以通过这样的相对路径解析你的文件夹:

File confFolder = new File("conf");
File filesFolder = new File("files");

最新更新