[英]listFiles() method in Java doesn't work in .jar
我的项目中有一个“图片”文件夹,如下所示: 链接
我想找到其中一些文件夹中的文件数。
我正在使用: int length = new File("./Pictures/1").listFiles().length
在运行IDE时可以很好地工作。 但是,当我将项目转换为.jar文件时,会收到NullPointerException.
jar文件基本上是一个zip文件。 您的代码将在文件系统上而不是jar文件中查找Pictures
目录。 要访问jar文件中的文件(也可以在jar之外工作,它从类路径搜索),可以使用Class.getResource() (和getResourceAsStream()
)。
但是我不确定是否可以根据需要将它们用于文件列表,它们主要用于从类路径中检索单个资源。
您不能将File与jar条目一起使用。 您必须找到jar文件并将其视为zip文件。
您可以使用文件夹的相对路径,并且从IDE运行时,相对路径可以正常工作,因为它们是相对于项目根目录的。 但是,当您运行jar时,JVM会假定相对路径是相对于jar所在目录的。
如果只想检查File.listFiles()
工作方式,则可以使用该文件夹的完整路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.