我的项目中有一个“图片”文件夹,如下所示: link
我想找到其中一些文件夹中的文件数。
我正在使用:
int length = new File("./Pictures/1").listFiles().length
当我运行IDE时,效果很好。但是,当我将项目转换为.jar文件时,我得到了NullPointerException.
答案 0 :(得分:4)
jar文件基本上是zip文件。您的代码将在文件系统上而不是jar文件中寻找Pictures
目录。要访问jar文件中的文件(也可以在jar之外工作,它从类路径搜索),可以使用Class.getResource()(和getResourceAsStream()
)。
但是我不确定是否可以根据需要将它们用于文件列表,它们主要用于从类路径中检索单个资源。
答案 1 :(得分:1)
您不能将File与jar条目一起使用。您必须找到jar文件并将其视为zip文件。
答案 2 :(得分:1)
您使用文件夹的相对路径,并且从IDE运行时,相对路径可以正常工作,因为它们相对于项目根目录。 但是,当您运行jar时,JVM会假定相对路径是相对于jar所在目录的。
如果您只想查看public class ConfiguracaoFirebase {
private static DatabaseReference referenciaFirebase;
private static FirebaseAuth autenticacao;
public static DatabaseReference getFirebaseReference(){
if (referenciaFirebase == null){
referenciaFirebase = FirebaseDatabase.getInstance().getReference();
}
return referenciaFirebase;
}
public static FirebaseAuth getFirebaseAutenticacao(){
if (autenticacao == null){
autenticacao = FirebaseAuth.getInstance();
}
return autenticacao;
}
}
的工作方式,则可以使用该文件夹的完整路径。