我正在尝试获取jar的父文件夹,并一直搜索它。原因是我正在修改构建路径上 jar 下的所有 .class 文件(它下面有一堆 jar)。
我目前正在 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);
有人对我可以切换的内容有任何想法吗?
File.listFiles() 可以返回 null。参见Javadoc。你没有检查那个。