Java中的listFiles()方法不';我不能在罐子里工作

Java中的listFiles()方法不';我不能在罐子里工作,java,file,jar,io,directory,Java,File,Jar,Io,Directory,我的项目中有一个“图片”文件夹,如下所示: 我想查找其中一些文件夹中的文件数 我正在使用: int length=新文件(“./Pictures/1”).listFiles().length 当我运行IDE时,它工作得非常好。然而,当我将我的项目转换为.jar文件时,我得到了一个NullPointerException。您不能将该文件与jar条目一起使用。您必须找到jar文件并将其视为zip文件 使用文件夹的相对路径,并且从IDE运行时,相对路径可以正常工作,因为它们是相对于项目根目录的。 但

我的项目中有一个“图片”文件夹,如下所示:

我想查找其中一些文件夹中的文件数

我正在使用:
int length=新文件(“./Pictures/1”).listFiles().length

当我运行IDE时,它工作得非常好。然而,当我将我的项目转换为.jar文件时,我得到了一个
NullPointerException。

您不能将该文件与jar条目一起使用。您必须找到jar文件并将其视为zip文件

使用文件夹的相对路径,并且从IDE运行时,相对路径可以正常工作,因为它们是相对于项目根目录的。 但是,当您运行jar时,JVM假定相对路径是相对于jar所在的目录的


如果您只想检查
File.listFiles()
的工作方式,则可以使用该文件夹的完整路径

jar文件基本上是一个zip文件。您的代码将在文件系统中查找
Pictures
目录,而不是在jar文件中。要访问jar文件内的文件(也可以在jar之外工作,它从类路径进行搜索),您可以使用(和
getResourceAsStream()


但是,我不确定是否可以根据您的需要将它们用于文件列表,它们主要用于从类路径检索单个资源。

给出一个绝对文件路径,并检查相对于jar文件的pictures文件夹位于何处?