无法创建.xlsx文件,并继续获取Java NoClassDefFoundException和ClassNotFoundException

时间:2019-07-04 00:21:34

标签: java xlsx classnotfoundexception

我一直在使用我发现的一个简单示例来做一个测试类来创建.xlsx文件。我不使用Maven项目,因为要实现它的项目不是Maven项目。

问题在于,每次我运行测试程序时,我都会收到一条错误消息,指出缺少一个类。查找包含缺少的类的jar并实现它后,我再次运行该程序,并得到相同的错误,但缺少另一个不同的类。我已经在程序中添加了4个jar,但是每次我都得到不同的缺少类时。是否有任何线索可以使这项工作有效,或者是否存在使用Apache POI或任何其他API创建.xlsx文件的更有效方法?

这是我用于测试的代码:

public static void main(String[] args) throws FileNotFoundException, IOException {
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheet = workbook.createSheet("Java Books");
    Object[][] bookData = {{"Head First Java", "Kathy Serria", 79}, {"Effective Java", "Joshua Bloch", 36}, {"Clean Code", "Robert martin", 42}, {"Thinking in Java", "Bruce Eckel", 35}};
    int rowCount = 0;
    for (Object[] aBook : bookData) {
        Row row = sheet.createRow(++rowCount);
        int columnCount = 0;
        for (Object field : aBook) {
            Cell cell = row.createCell(++columnCount);
            if (field instanceof String) {
                cell.setCellValue((String) field);
            } else if (field instanceof Integer) {
                cell.setCellValue((Integer) field);
            }
        }
    }
    try (FileOutputStream outputStream = new FileOutputStream("JavaBooks.xlsx")) {
        workbook.write(outputStream);
    }
}

这些是我得到的jar和异常:

img1 img2 img3 img4 img5

添加了这些jar,但是最后一个异常(上面的一个)一直出现。我添加了jar poi-ooxml-schemas-3.9.jar,因为它应该是包含缺少类的jar,但是异常仍然存在。

这些是我正在使用的所有罐子:https://drive.google.com/open?id=1jFovTLN_wpCwPFL6q_HbPciU7a6wnmuv

enter image description here

1 个答案:

答案 0 :(得分:1)

正如@Miller Cy Chan在评论中所说,问题的答案很简单,即在所有需要的罐子中都安装相同版本的罐子(或者如果不是所有罐子都使用相同的罐子,至少是最新的罐子)罐子,特别是罐子 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> poi-4.1.0.jarpoi-ooxml-4.0.0.jarpoi-ooxml-schemas-4.1.jar