簡體   English   中英

Java中的listFiles()方法在.jar中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM