[英]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.