【问题标题】:Find jars in a jar在罐子里找罐子
【发布时间】:2013-09-16 11:01:40
【问题描述】:

假设我有一个名为 test.jar 的 jar 文件。我被分配了列出这个 test.jar 中打包的所有 jar 的任务。

问题是,打包这个 test.jar 的人,把它打包进去,它不会在以下命令的输出中显示 jar,而只是一个 .class 文件和包结构的列表。

jar -tvf test.jar

请指点那个方向..

【问题讨论】:

  • 这就像一个普通的 .jar 看起来像 - 虽然你在 jar 中打包 jars,但通常没有意义。
  • @Gyro..如果你在 Eclipse 中导出一个项目。它会询问你要导出哪些内容以及如何导出。

标签: java jar packaging


【解决方案1】:

如果是Linux,可以试试解压命令:

unzip -l your_jar_file.jar

您还可以从 Java 中列出 jar 文件的内容。一定是这样的:

ZipFile jarFile = new ZipFile( jarFilePath );
Enumeration<? extends ZipEntry> entries = jarFile.entries();
while( entries.hasMoreElements() ) {
    System.out.println( entries.nextElement().getName() );
}

【讨论】:

  • 感谢您的回答.. 但我不想在 Java 中执行此操作.. 无论如何.. 我想提取那些 jar 文件。如果您在 Eclipse 中导出,它可以让您选择要在 jar 中打包的内容和方式。如果有人在将罐子包装在罐子中时没有正确选择它。你将无法打开那些嵌套的罐子。
【解决方案2】:

要在 java 中执行此操作,请使用文件名实例化 ZipFile。 ZipFile 有一个方法,entries(),它返回一个枚举器,覆盖 ZipFile 中的所有 ZipEntries(jar 中的成员)。您可以使用枚举器进行迭代并询问每个条目的名称。仅列出名称以“.jar”结尾的条目

【讨论】:

  • 感谢您的回答..但我不想在 Java 中执行此操作..无论如何..我想提取那些 jar 文件。如果您在 Eclipse 中导出,它可以让您选择要在 jar 中打包的内容和方式。如果有人在将罐子包装在罐子中时没有正确选择它。你将无法打开那些嵌套的罐子。
猜你喜欢
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
相关资源
最近更新 更多