我的jar包含不同的文件夹,子文件夹和文件。
要列出和查看jar的内容,我可以使用jar -tvf jar_name
。
是否有任何方式jar -tvf或类似的其他命令将只列出jar内容中的目录。
我看到jar有以下选项,但-t
以外的其他选项,我找不到哪些可以帮助列出文件或文件夹。没有一次使用-t
选项。
jar Options:
-c create new archive
-t list table of contents for archive
-x extract named (or all) files from archive
-u update existing archive
-v generate verbose output on standard output
-f specify archive file name
-m include manifest information from specified manifest file
-e specify application entry point for stand-alone application
bundled into an executable jar file
-0 store only; use no ZIP compression
-M do not create a manifest file for the entries
-i generate index information for the specified jar files
-C change to the specified directory and include the following file
我需要加载jar文件并在树结构中显示文件夹和文件。什么是实现这种逻辑的最佳方法。
答案 0 :(得分:1)
Jar是一个zip文件。使用this answer。或者以编程方式answer1或此answer2
获取文件列表(see docs)并grep那些以“\”<结尾的行 - 您将获得目录列表。
答案 1 :(得分:1)
命令行(Linux);
jar tf JAR_PATH | grep ".*/$"
用于获取jar文件中目录的Java代码;
try {
JarFile jarFile = new JarFile(JAR_PATH);
Enumeration<JarEntry> paths = jarFile.entries();
while (paths.hasMoreElements()) {
JarEntry path = paths.nextElement();
if (path.isDirectory()) {
System.out.println(path.getName());
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}