我刚刚遇到了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内部内容的读取机制有什么区别。简单罐子里的东西
getResource()
和getResourceStream()
都能够在jar中查找资源,它们使用相同的机制来查找资源。
但是,当您从URL
构造file
(该URL表示jar中的条目)时,file.exists()
将返回false
。file
不能用于检查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