jakarta ee在Jar中放置的Java读取文件是否也可以放置在Ear中?
我想知道是否有可能在放在jar中的XML文件中找到内容,而jar也放在ear中。它将帮助我找到JavaBean的属性
在ear中,我可以遍历文档并查看其中的内容,但是如果它是一个jar,我就不能遍历其中的文档
有人能给我一些建议吗
你可以在下面搜索框中键入要查询的问题!
我想知道是否有可能在放在jar中的XML文件中找到内容,而jar也放在ear中。它将帮助我找到JavaBean的属性
在ear中,我可以遍历文档并查看其中的内容,但是如果它是一个jar,我就不能遍历其中的文档
有人能给我一些建议吗
# 1 楼答案
所以我只是测试了你想做的事情——只要JAR位于你EAR的类路径中,你就可以访问其中的任何文件。基本上,用户可以尝试从应用程序的上下文根目录中查找文件
例如,如果JAR中的文件
abc.xml
位于包a.b.resources
下,那么可以通过EAR中的servlet访问它:InputStream is = this.getClass().getClassLoader().getResourceAsStream("a/b/resources/abc.properties");
# 2 楼答案
从ear文件中,您应该能够提取jar文件。然后,您可以使用WinZip、7 Zip等来探索GUI中的jar文件内容。或者可以运行jar tf命令,在命令行中提取jar文件的内容。如果您没有这些工具,并且使用windows,那么您可以将jar文件重命名为。zip和windows应该能够探索它(大多数情况下都是有效的)
编辑——我不确定你是否想用Java来做。在这种情况下,您正在寻找JarFile。我在这里找到了一个example用于以编程方式探索Jar内容
# 3 楼答案
是的,你可以读取任何打包成zip文件的文件。在路上打开多少嵌套的zip文件并不重要。使用ZipInputStream,获取所需的ZipPentry,阅读内容。如果它仍然是zip,打开它,然后一次又一次地做,直到您访问所需的资源