代码之家  ›  专栏  ›  技术社区  ›  Dario

在JAR读取文件中放置在耳中是否可能?

  •  0
  • Dario  · 技术社区  · 15 年前

    我想知道是否有可能找到放在jar中的XML文件中的内容,这个jar也放在EAR中。它将帮助我找到Java bean的属性。

    在EAR中,我可以遍历文档并查看其中的内容,但是如果它是一个JAR,我就不能在其中迭代文档。

    有人能给我一些建议吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   CoolBeans Jake    15 年前

    从EAR文件中,您应该能够提取JAR文件。然后你可以用 WinZip , 7 Zip 等来探索JAR文件中的GUI内容。或者你可以运行 jar tf 命令在命令行中提取JAR文件的内容。如果您没有这些工具中的任何一个,并且使用Windows,那么您可以将JAR文件重命名为.zip,并且Windows应该能够浏览它(大多数情况下都是有效的)。

    编辑-我不知道你是否想用Java做它。在这种情况下,你正在寻找 JarFile . 我发现了一个 example 在这里用编程的方式探索jar内容。

        2
  •  1
  •   anirvan    15 年前

    所以我只是测试了你想做的事情——只要jar位于你耳朵的类路径中,那么你就可以访问其中的任何文件。基本上是尝试从应用程序的上下文根目录中查找文件。

    例如,如果在jar中 abc.xml 位于包下 a.b.resources ,然后通过在耳朵中说一个servlet,您可以使用以下方法访问它:
    InputStream is = this.getClass().getClassLoader().getResourceAsStream("a/b/resources/abc.properties");

        3
  •  0
  •   AlexR    15 年前

    是的,您可以读取压缩到zip文件中的任何文件。不管您在路上打开多少个嵌套的zip文件。使用zipinputstream,获取所需的zipEntry,读取其内容。如果它仍然是zip,请打开它,然后一次又一次地执行它,直到您访问所需的资源。