基本上我想做的是解析目录中的所有文件并将所有子文件添加到 List< File> 中。 问题是我没有 main 函数,我只运行一个 jar。所以我不能这样做:
URL url = MyClass.class.getResource("resources/");
if (url == null) {
// error - missing folder
} else {
File dir = new File(url.toURI()); //throws error when running the jar
for (File nextFile : dir.listFiles()) {
// Do something with nextFile
}
}
因为它抛出 IllegalArgument 异常。我还尝试过使用以下方法获取 InputStream:
InputStream inStream = CompilerUtils.class.getClassLoader().getResourceAsStream(filePath)
但它似乎不适用于文件。我正在寻找适用于目录的替代方案。
最佳答案
获取 url 的字符串表示 url.getFile()
它将看起来像 file:/C:/xxx/yyy/x.jar!/resources
从中提取路径它:C:/xxx/yyy/x.jar。
使用JarFile类读取文件夹
关于java - 如何从 jar 中获取资源(文件夹)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933499/