java - 如何从 jar 中获取资源(文件夹)?

标签 java jar resources directory

基本上我想做的是解析目录中的所有文件并将所有子文件添加到 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/

相关文章:

java.util.ConcurrentModificationException -- 执行 IO 操作时的错误(不是列表)

java - Gmail API - 从新邮件下载附件 所需范围 - JAVA

java - war 中运送的 jar 与 jetty 冲突

rest - 如何在Grails中将领域类作为REST资源编写集成测试?

java - db4o 透明激活 - 检索节点的子值时出现 Null 异常

java - 使用 Apache CXF 的 REST WebService 中的 UTF-8 编码字符串

groovy - 让 Groovy 脚本像葡萄一样从文件系统中抓取一个 jar

java - Jar 资源中的 Unicode

c++ - 来自资源数据的 C/C++ 消息框

Xcode 针对不同目标的不同资源