首页 > 解决方案 > 文件导出到 jar 后给出空指针

问题描述

在我的代码中,我需要通过扫描目录并将结果提供给组合框来填充 JComboBox。

我这样做如下

File folder = new File("src/profiles");
for (final File fileEntry : folder.listFiles())             
         list.add(fileEntry.getName().substring(0, fileEntry.getName().length()-5));

这在 Eclipse 中工作得很好,但是一旦我导出到一个可运行的 jar,它就会在我的 for 循环中抛出一个空指针异常。我猜这是因为无法制作/找到文件夹文件,因为结构不再相同。我已经用 7zip 检查了 jar 并且配置文件目录在那里。它位于 jar 的根目录,但即使我更改"src/profiles""profiles""\profiles"它仍然抛出相同的空指针异常错误

目录结构看起来像这样以供参考

    Project
       bin
          name
          images
          profiles
       src
          name
              this.java
              that.java
          images
          profiles
              profile1.json
              profile2.json

任何人都知道在导出到罐子后仍然可以完成这项工作的方法吗?通过以不同方式获取文件夹或以另一种方式扫描目录?

标签: javajarnullpointerexceptionembedded-resource

解决方案


如果您想在应用程序的类路径中查找资源(在您的情况下是在 jar 中),那么您可以使用 Java 的类加载器资源功能。

这是一个示例:从类路径目录中获取资源列表


推荐阅读