我正在开发一个项目,其中几乎没有使用POI 2.5版本罐的功能,我开发了一项新功能,我需要POI版本3.10罐,所以现在问题是以前的功能不能正常工作,因为它在poi 2.5版jar上完美运作
现在如果我在我的类路径中保留poi jar的两个版本是有任何方式,只有我的类我可以明确地调用poi 3.10版本和前一个功能poi 2.5版本被称为
默认情况下,如果我保留两个版本的poi jar,那么总是调用poi 2.5版本的jar,所以我想要我的班级说abc明确poi 3.10版本被称为
请告知我可以在这里明确使用类加载器吗?请告知我是否可以动态创建类的对象
class ABC
{
//version of poi 3.10 being called here
HSSFWorkbook workbookXls = new HSSFWorkbook();
}
正在使用早期版本的POI 2.5的类def
class DEF
{
//version of poi 2.5 being called here
HSSFWorkbook workbookXls = new HSSFWorkbook();
}
答案 0 :(得分:1)
是的,可以这样做,从不同的类加载器加载每个jar。
您还可以重构一个罐子以更改其包装并避免碰撞。如果你正在使用带有jar-jar MOJO的maven,那么这可以自动完成。