java - 文件导出到 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
任何人都知道在导出到罐子后仍然可以完成这项工作的方法吗?通过以不同方式获取文件夹或以另一种方式扫描目录?
解决方案
如果您想在应用程序的类路径中查找资源(在您的情况下是在 jar 中),那么您可以使用 Java 的类加载器资源功能。
这是一个示例:从类路径目录中获取资源列表
推荐阅读
- applescript - 如何修复applescript上的属性列表文件?
- azure-devops - Azure Pipelines 将 YAML 用于具有不同变量值但没有 YAML 重复的多个环境(阶段)
- powershell - 通过前后字符串缩短可变长文件名
- c++ - C++ 如何避免不同第三方类型变量的重复代码?
- laravel - Lighthouse GraphQL - 数据透视表上的 HasManyThrough
- ios - 为什么 Core Haptics 不播放?(CHHapticPatternPlayer)
- jaxb - CXF JAX-RS 如何签署 XML 消息(使用 XAdES-T)
- ios - 删除coredata中选定collectionview的值?
- spring-boot - 我得到 404 https://localhost:8080/swagger-ui.html
- python - 如何在简单的 pythhon 3.8 程序中解决问题 ord utf_8?