Java 类型不匹配:无法从HSSF工作簿转换为工作簿

Java 类型不匹配:无法从HSSF工作簿转换为工作簿,java,ant,apache-poi,classpath,Java,Ant,Apache Poi,Classpath,我有下面的代码 Workbook srcWorkBook; Workbook tgtWorkbook; if((src.substring(src.lastIndexOf("."),src.length()).equals(".xlsx"))){ srcWorkBook=new XSSFWorkbook(excelFileSrc); }else{ srcWorkBook=new HSSFWorkbook(excelFileSrc); } 它在独立文件中正常运行,但在ant编译过

我有下面的代码

Workbook srcWorkBook;
Workbook tgtWorkbook;
if((src.substring(src.lastIndexOf("."),src.length()).equals(".xlsx"))){
    srcWorkBook=new XSSFWorkbook(excelFileSrc);
}else{
    srcWorkBook=new HSSFWorkbook(excelFileSrc);
}
它在独立文件中正常运行,但在ant编译过程中抛出了错误

 [javac] found   : org.apache.poi.hssf.usermodel.HSSFWorkbook
 [javac] required: org.apache.poi.ss.usermodel.Workbook

我检查了我的类路径,它没有任何重复的JAR实例。请帮助

首先,错误表明您的类路径上有一个主Apache POI jar的旧副本,或者使用了不匹配的POI jar。请参阅一些代码,这些代码将帮助您跟踪您真正使用的jar,以及有关在不受支持的版本之间混合POI jar的更多信息

其次,您的代码本身并不理想。相反,您应该使用来为自己实例化正确的工作簿类。将代码改为:

Workbook srcWorkBook = WorkbookFactory.create(new File(excelFileSrc));
这将为您标识文件类型,并为您创建正确的
HSSFWorkbook
XSSFWorkbook