当前位置: 首页 > 知识库问答 >
问题:

getResource()无法读取jar中目录的内容

缑桐
2023-03-14

我刚刚遇到了jar中的主类无法读取文件夹内容的问题。该类包含

String path = "flowers/FL8-4_zpsd8919dcc.jpg";
    try {
        File file = new File(TestResources.class.getClassLoader()
                                .getResource(path).getPath());
        System.out.println(file.exists());
    } catch (Exception e) {
        e.printStackTrace();
    }

这里sysout返回false

但当我尝试这样的东西时

    String path = "flowers/FL8-4_zpsd8919dcc.jpg";
    FileOutputStream out = null;
    InputStream is = null;
    try {
        is = TestResources.class.getClassLoader().getResourceAsStream(path);
        byte bytes[] = new byte[is.available()];
        is.read(bytes);
        out = new FileOutputStream("abc.jpg");
        out.write(bytes);
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

为什么会这样,这两种方法对JAR内部内容的读取机制有什么区别。简单罐子里的东西

共有1个答案

翟卓君
2023-03-14

getResource()getResourceStream()都能够在jar中查找资源,它们使用相同的机制来查找资源。

但是,当您从URL构造file(该URL表示jar中的条目)时,file.exists()将返回falsefile不能用于检查jar/zip中的文件是否存在。

您只能使用file.exists,它们位于本地文件系统上(或附加到本地文件系统)。

 类似资料:
  • 问题内容: 因此,我相信这个问题已经问了一百万遍了,我已经阅读了几个小时,并尝试了一些人给出的几种选择,但是没有一个对我有用。 我想列出应用程序JAR内目录中的所有文件,因此在IDE中可以运行: 这给了我目录中的所有文件。 现在,我也尝试过: 然后从IDE中打印目录中的所有文件。外部IDE打印:“行尾”。 现在,我也可以在Jar中找到一个条目: 那是我必须对那个String进行的可怕编码。 无论如

  • 问题内容: 我已经编写了一个程序来加密Netbeans中的图像。从Netbeans运行时,该程序运行良好,但是当我将其构建为.jar文件时,即使我将图像文件与.jar文件放在同一文件夹中,它也无法读取图像。 //加密 //加载/写入图片 问题答案: 目前尚不清楚以下哪个触发您的错误。这个 将从当前目录读取,该目录不一定与您的jar文件所在的目录相同。 这个 将从类所在的jar文件中的目录中读取。请

  • 当我构建一个jar文件并运行它时,由于找不到图像图标,它显示一个空指针异常 这是我运行jar文件时得到的错误 但是当我在NetBeans中运行这个项目时,它运行良好 这是我列出罐子里所有文件时的输出

  • 问题内容: 我正在尝试访问我的jar文件中的目录。我想浏览目录本身内的每个文件。例如,我尝试使用以下方法: 如果我测试此小程序,它将很好地工作。但是,一旦将内容物放入广口瓶中,并不是有几个原因。如果使用此代码,则URL始终指向jar外部,因此必须将目录放在此处。但是如果我使用的话,它不能在jar里面起作用,因为我得到了错误。我确定该目录存在于jar中。我应该如何获得罐子里的东西? 问题答案: Ja

  • 读取目录 读取目录 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:读取目录 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在函数

  • 我有以下前缀: 有办法 在intellij中,idea工作正常,但启动jar时出现错误: JAVA尼奥。文件NoSuchFileException:文件:/app。罐子/BOOT-INF/classes/模板/请求订单/未标记/请求订单未标记。pdf