Java JAR-将文件列在文件夹中

Java JAR-将文件列在文件夹中,java,jar,directory-listing,Java,Jar,Directory Listing,我想得到一个包含在jar包中的目录中的文件列表。 我有一个“images”文件夹,其中有一个images类,该类应加载该目录中的所有图像 过去我使用的是MyClass.class.getResourceAsStream(“文件名”)读取文件,但如何读取目录 这就是我所尝试的: System.out.println(Images.class.getResource("").getPath()); System.out.println(new File(Images.class.getResourc

我想得到一个包含在jar包中的目录中的文件列表。 我有一个“images”文件夹,其中有一个
images
类,该类应加载该目录中的所有图像

过去我使用的是
MyClass.class.getResourceAsStream(“文件名”)
读取文件,但如何读取目录

这就是我所尝试的:

System.out.println(Images.class.getResource("").getPath());
System.out.println(new File(Images.class.getResource("").getPath()).listFiles());
我尝试使用
Images.class.getResource
,因为我必须使用
文件
,而且没有接受
输入流的构造函数

代码生成

file:/home/k55/Java/MyApp/dist/Package.jar!/MyApp/images/
null
因此,它正在查找我要从中列出文件的文件夹,但它无法列出文件

我在其他论坛上读到过,事实上你不能对jar归档中的文件夹使用这种方法,那么我如何才能做到这一点呢


更新:如果可能的话,我想不必使用ZipInputStream就可以读取文件。你不能轻易做到这一点

您需要做的是:

  • 获取jar文件的路径。 image.class.getResource(“/something/that/exists”).getPath()
  • 剥去“!/something/that/exists”
  • 用于浏览Jar文件。 这是一点黑客行为

  • 不幸的是,
    Images.class.getResource(“/”).getPath()
    会触发一个
    NullPointerException
    @反斜杠不,没有。
    ZipFileSystem
    或带有手动筛选条目的“ZipInputStream”。