使用 JAR 存档时的一个常见任务是列出它们包含的文件。这对于各种目的都很有用,例如提取特定文件或创建存档内容的清单。
Java 提供了一组广泛的类来处理 ZIP 文件,包括 JAR 档案。 ZipInputStream 类允许您迭代 JAR 文件中的条目并访问其元数据。
要列出 JAR 中的文件,请按照以下步骤操作:
以下代码显示了列出所有JAR 中的文件:
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); ZipInputStream zip = new ZipInputStream(jar.openStream()); while (true) { ZipEntry e = zip.getNextEntry(); if (e == null) { break; } System.out.println(e.getName()); } } else { System.out.println("JAR not found"); }
中Java 7 引入了一项新功能,可以简化使用 ZIP 文件的过程。 FileSystem 类可用于将 ZIP 文件安装为只读文件系统。这允许您使用标准 Java I/O 库来导航和列出 JAR 文件的内容。
以下代码显示了使用 FileSystem 类列出 JAR 中的文件的示例:
Path jarPath = Paths.get("/path/to/my.jar"); FileSystem fs = FileSystems.newFileSystem(jarPath, null); Path root = fs.getPath("/"); Files.walk(root) .filter(path -> path.toString().startsWith("path/to/your/dir/")) .forEach(System.out::println);
此代码使用 Files 类,该类提供了用于处理文件和目录的高级 API,可以遍历 JAR 文件的根目录并过滤掉任何与期望的标准。
以上是如何使用 Java 列出 JAR 文件内的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!