我是想在war项目中想获取下依赖的一个jar中lua脚本文件,projectA,依赖了otherA的一个项目(jar),otherA项目有几个lua脚本作为资源文件打包在jar中,现在在projectA中我想检测下所有的lua,尝试了很多方式获取;
①原生ClassLoader中取获取,其实应该是可以获取到的,但是源码调试了很久进去没有找到有用的地方,最后到了sun包,看不到源码,就放弃了
②最后还是想到了spring,因为spring里面有太多的工具类可以使用,最后再idea里面随便搜搜类,真的找到了,下面给出代码让大家参考下
try {
//这里的resourceLoader直接Autowired注入就好了,是spring容器中有的一个类
ResourcePatternResolver resolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
MetadataReaderFactory metaReader = new CachingMetadataReaderFactory(resourceLoader);
Resource[] resources = resolver.getResources("classpath*:*.lua");
for (Resource r : resources) {
System.out.println(r.getFilename());
}
} catch (Exception e) {
}
//得到解析文件内容
String s = IOUtils.toString(r.getURL(), Charset.defaultCharset());
//或者 IOUtils.toString(Channels.newInputStream(r.readableChannel()),Charset.defaultCharset());
网友评论