我想发现我的 ClassLoader 使用通配符模式知道的所有 xml 文件。有没有办法做到这一点?
Jeff
问问题
11844 次
5 回答
7
SpringApplicationContext
可以轻松做到这一点:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationConext.xml");
Resource[] xmlResources = context.getResources("classpath:/**/*.xml");
于 2008-09-26T11:41:56.407 回答
6
List<URL> resources = CPScanner.scanResources(new PackageNameFilter("net.sf.corn.cps.sample"), new ResourceNameFilter("A*.xml"));
将代码段放入您的 pom.xml
<dependency>
<groupId>net.sf.corn</groupId>
<artifactId>corn-cps</artifactId>
<version>1.0.1</version>
</dependency>
于 2013-05-19T21:59:17.343 回答
5
它需要一点技巧,但这里有一个相关的博客条目。您首先找出罐子的 URL,然后打开罐子并扫描其内容。我想你会通过查找“/META-INF/MANIFEST.MF”来发现所有 jar 的 URL。目录将是另一回事。
于 2008-09-25T13:28:17.233 回答
1
JAR 文件只是另一个 ZIP 文件,对吗?
所以我想你可以使用http://java.sun.com/javase/6/docs/api/java/util/zip/ZipInputStream.html来迭代 jar 文件
我在想类似的事情:
ZipSearcher searcher = new ZipSearcher(new ZipInputStream(new FileInputStream("my.jar")));
List xmlFilenames = searcher.search(new RegexFilenameFilter(".xml$"));
干杯。基思。
于 2008-09-25T13:47:54.533 回答
-5
好吧,它不是来自 Java 内部,而是
jar -tvf jarname | grep xml$
将向您展示 jar 中的所有 XML。
于 2008-09-25T13:22:11.413 回答