java - 无法使用 .getResource().getPath() 打开文件

标签 java javafx-2

一年前,我为我的毕业作品编写了 JavaFX 2.0 应用程序。但一年后,我遇到了以前有效的代码问题。

所以,在代码中我想获取文件夹并列出它的文件:

File dir = new File(getClass().getResource("media/images/backgrounds/").getPath()); 
File[] files = dir.listFiles();
for (File file : files) {
    list.add(file.toURI().toString());
}

我在“for (File file : files) {”行上收到 java.lang.NullPointerException

System.out.print(getClass().getResource("media/images/backgrounds/").getPath());

返回 文件:/D:/JavafxApp1/JavafxApp/dist/run2054723721/JavafxApp.jar!/javafxapp/media/images/backgrounds/

我不想创建另一种方法来从 JAR 文件中的流中读取文件。这种获取文件的方法一年前 100% 有效,但为什么现在不起作用?谢谢!

最佳答案

它不会工作,因为你的文件夹在一个 jar 里。我想一年前他们还不是。我认为对于目录位于 jar 之外的情况,您不需要单独的代码:

我找到了this example该图展示了如何使用 getResourceAsStream 列出目录中的文件。然后,您可以依次通过 getResourceAsStream 访问这些资源。你永远不会知道你是在 jar 里面还是外面:-)

关于java - 无法使用 .getResource().getPath() 打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294829/

相关文章:

java - 如何将 Sparql 查询的两个不同但相关的结果集合并为一个?

javafx-2 - 如何让圆圈在事件中移动?

java - 如何从字符串为唯一索引数据库列创建哈希?

java - 发送文件名,然后发送文件本身

JavaFX 无法使用 Start 从 NetBeans 中的非 FX 项目启动

javafx-2 - 如何滚动以使 ScrollPane 内容中的节点可见?

tableview - JavaFX TableView 内容在滚动时消失

java - 在 JavaFX 中的 PathTransition 方面需要帮助

java - 天气休息服务

java - 将托管 Bean 保存到 Notes 文档