以下代码将在uri = ...
我尝试了ClassLoader.getSystemResource
,getClass().getResource
或getClass().getClassLoader().getResource
如果我在开头删除/或者在结尾删除它,那么它仍会产生一个NullPointerException。
public class Main {
public static void main(String[] args) {
new Main();
}
private Main() {
URI uri = null;
try {
uri = ClassLoader.getSystemResource("/resources/images/flags/").toURI();
} catch (URISyntaxException e) {
e.printStackTrace();
}
if (uri != null) {
System.out.println(uri.toString());
File folder = new File(uri);
for (File file : folder.listFiles()) {
System.out.println(file.getName());
}
}
}
}
项目结构:
答案 0 :(得分:4)
请不要使用" resources",因为这只是文件夹的名称。 此文件夹的内容将复制到已编译的类中。
答案 1 :(得分:0)
这是我的评论的答案。由于ld -r
已经是类路径的一部分,因此您必须更改:
resource
到
"/resources/images/flags/"
此外,您可以尝试"/images/flags/"