我需要查看特定包内文件的名称。目前,我正在执行以下操作:
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL packageUrl = loader.getResource(getPackage().replace('.', '/'));
File packageDir = new File(packageUrl.getFile());
// Work with the files inside the directory
在Eclipse中,这个方法非常有效,因为它默认不会将我的应用程序打包。但是,当我从一个jar文件运行它时,我会在packageUrl
上得到NullPointerException
。
那么,如何获取一个位于jar包内部的包内容列表呢?我的研究表明可以使用getResourceAsStream
,但我不太确定如何使用InputStream
探索目录,如果有可能的话。
getNextEntry()
似乎总是返回null
。getLocation()
返回rsrc:./
。你有什么想法吗?顺便说一下,我正在尝试从我的应用程序自己的 jar 文件中读取文件...我想我应该提到这一点。 - Matheus Moreira