Domanda

Voglio scoprire tutti i file XML che il mio ClassLoader è a conoscenza dell'uso di un modello jolly. C'è un modo per farlo?

È stato utile?

Soluzione

Richiede un po 'di trucco, ma ecco un post di blog . Prima devi capire gli URL dei barattoli, quindi aprire il barattolo e scansionarne il contenuto. Penso che scopriresti gli URL di tutti i barattoli cercando `/META-INF/MANIFEST.MF '. Le directory sarebbero un'altra cosa.

Altri suggerimenti

Un ApplicationContext di primavera può farlo in modo banale:

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

Vedi ResourcePatternResolver # getResources o ApplicationContext .

 List<URL> resources = CPScanner.scanResources(new PackageNameFilter("net.sf.corn.cps.sample"), new ResourceNameFilter("A*.xml"));

inserisci lo snippet nel tuo pom.xml

<dependency>
    <groupId>net.sf.corn</groupId>
    <artifactId>corn-cps</artifactId>
    <version>1.0.1</version>
</dependency>

Un file JAR è solo un altro file ZIP, giusto?

Quindi suppongo che potresti iterare i file jar usando http://java.sun.com/javase/6/docs/api/java/util/zip/ZipInputStream.html

Sto pensando a qualcosa del tipo:

ZipSearcher searcher = nuovo ZipSearcher (nuovo ZipInputStream (nuovo FileInputStream (" my.jar "))); Elenca xmlFilenames = searcher.search (new RegexFilenameFilter (" .xml $ "));

Saluti. Keith.

Beh, non proviene da Java, ma

jar -tvf jarname | grep xml $

ti mostrerà tutti gli XML nel vaso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top