繁体   English   中英

是否可以在Java中读取放置在Ear中的Jar中的文件?

[英]Is it possible in Java read files placed in a Jar that it's placed in a Ear too?

我想知道是否有可能在放在耳朵里的罐子里的XML文件中找到内容。 这将帮助我找到Java Bean的属性。

直到耳朵,我都可以遍历文档并查看其中的内容,但是如果它是一个罐子,我将无法遍历其中的文档。

有人可以给我一些建议吗?

从耳文件中,您应该能够提取jar文件。 然后,您可以使用WinZip7 Zip等在GUI中浏览jar文件的内容。 或者,您可以运行jar tf命令以在命令行中提取jar文件的内容。 如果您没有任何这些工具并且没有使用Windows,则可以将jar文件重命名为.zip,并且Windows应该能够浏览该文件(大多数情况下可以使用)。

编辑-我不确定您是否要使用Java。 在这种情况下,您正在寻找JarFile 我在这里找到了一个示例 ,用于以编程方式浏览Jar内容。

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

例如,如果在您的JAR中文件abc.xml位于包abresources ,那么从EAR中的servlet可以使用以下命令访问它:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("a/b/resources/abc.properties");

是的,您可以读取压缩文件中的任何文件。 无论您要打开多少嵌套的zip文件,都没有关系。 使用ZipInputStream,获取所需的ZipEntry,读取它的内容。 如果它仍然是zip,请将其打开并反复执行,直到您访问所需的资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM