我正在尝试获取jar的父文件夹,并一直搜索它。原因是我正在修改构建路径上jar下面的所有.class文件(它下面有一堆罐子)。
我目前在searchForClasses方法的dir.listFiles()上获得了一个NPE,原因是当我创建一个新的文件实例时,它不是正确的路径。 (我相信)
我目前有这个:
public void searchForClasses(File dir) {
for (File f : dir.listFiles()) {
if (f.getName().endsWith(".class")) {
for (byte[] bytes : NMSversions)
fix(f.getAbsolutePath(), bytes, NMS);
for (byte[] bytes : OBCversions)
fix(f.getAbsolutePath(), bytes, OBC);
System.out.println("fixing");
} else {
searchForClasses(f);
}
}
}
这就是我用来尝试获取父文件的内容:
File directory = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath());
main.searchForClasses(directory);
有没有人对我可以切换的内容有任何想法?
答案 0 :(得分:0)
File.listFiles()可以返回null。见Javadoc。你没有检查。