从.jar中读取需要的文件。
我有一个目录/插件有两个jar在那里A.jar和B.jar .两者都有一个同名的文件,config.xml
File file = new File("plugin/");
for (File item: file.listFiles()) {
if (item.isFile() && item.getName().substring(item.getName().lastIndexOf(".")).equals(".jar")) {
ClassPathHacker.addFile(item); // classPathHacker adds the jar to classpath
InputStream is = getClass().getClassLoader().getResourceAsStream("config.xml");
}
}
但问题是,它不是在新的迭代后加载新的config.xml文件,而是每次加载第一个config.xml。如何解决这一矛盾?
使用ClassLoader#getResources()
获取所有config.xml文件的url。然后你可以选择使用哪一个,可能你会需要最后一个。
将最新文件放在类路径
您确定没有同时加载config.xml文件吗?请记住,在解析名称时,处理从PATH/CLASSPATH的左侧开始,每次向右移动一个令牌,直到到达列表的末尾或找到第一个匹配。