8

ClassLoaderがワイルドカードパターンを使用していることを認識しているすべてのxmlファイルを検出したいと思います。これを行う方法はありますか?

4

5 に答える 5

7

SpringApplicationContextはこれを簡単に行うことができます。

 ApplicationContext context = new ClassPathXmlApplicationContext("applicationConext.xml");
 Resource[] xmlResources = context.getResources("classpath:/**/*.xml");

ResourcePatternResolver#getResourcesまたはApplicationContextを参照してください。

于 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

少しコツが必要ですが、関連するブログ エントリを次に示します。最初に jar の URL を把握し、次に jar を開いてその内容をスキャンします。「/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 に答える