我有一个Jar文件,我使用第三方库创建.
当我打包jar文件时,我将几个xml文件包含在名为data的文件夹中
data
- file1.xml
- file2.xml
- file3.xml
现在,我想阅读jar文件中的文件夹,并根据第三方库的文档
我可以得到类加载器并像这样读取文件夹作为输入流.
ClassLoader clsLoader = myService.getClassLoader();
InputStream accountsStream = clsLoader.getResourceAsStream("data");
问题是,如何列出输入流中的所有文件并逐个解析?
谢谢
编辑
添加信息:
How do I access resources that I put into my service or module archive file?
http://axis.apache.org/axis2/java/core/faq.html#b1
对不起,这个问题应该是针对Apache Axis的,但如果它也是一个特定于Java的问题,我会感到困惑.
最佳答案
(抱歉 – 忽略我的回答 – 这里更好:)
原文链接:https://www.f2er.com/java/437982.htmlHow do I list the files inside a JAR file?
这是一个相当脆弱的解决方案,但您可以只读取自己的jar文件:
File file = new File(System.getProperty("user.dir") + "/jarname.jar");
JarFile jfile = new JarFile(file);
Enumeration e = jfile.entries();
while (e.hasMoreElements()) {
ZipEntry entry = (ZipEntry)e.nextElement();
String path = entry.getName();
if(path.startsWith("/path/within/jarfile/") && path.endsWith(".xml")) {
MyClass.loadResourceAsStream(path);
}
}