无法创建 .xlsx 文件并不断收到 Java NoClassDefFoundException 和 ClassNotFoundException
Cannot create .xlsx file and keep getting Java NoClassDefFoundException and ClassNotFoundException
我一直在进行测试 class,使用我找到的一个简单示例来创建 .xlsx 文件。我没有使用 Maven 项目,因为我要实现它的项目不是 Maven 项目。
问题是,每次我 运行 测试程序时,我都会收到一条错误消息,提示缺少 class。在查找包含缺少的 class 的 jar 并实现它之后,我再次 运行 程序并得到相同的错误但缺少另一个不同的 class。我已经在程序中添加了 4 个罐子,但每次我都不断丢失不同的 classes。关于如何进行这项工作的任何线索,或者是否有更有效的方法使用 Apache POI 或任何其他方法创建 .xlsx 文件 API?
这是我用于测试的代码:
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 和异常:
添加了这些 jar,但最后一个异常(上面那个)不断出现。我添加了 jar poi-ooxml-schemas-3。9.jar 因为它应该是包含缺失 class 的 jar,但异常仍然存在。
这些是我正在使用的所有罐子:https://drive.google.com/open?id=1jFovTLN_wpCwPFL6q_HbPciU7a6wnmuv
正如@Miller Cy Chan 在评论中所说,问题的答案很简单,只要拥有相同版本的罐子(或者至少是最新的,以防并非所有罐子都具有相同的版本)所需的罐子,特别是罐子 poi-4.1.0.jar
、poi-ooxml-4.0.0.jar
、poi-ooxml-schemas-4.1.jar
和 ooxml-schemas-1.4
.
我一直在进行测试 class,使用我找到的一个简单示例来创建 .xlsx 文件。我没有使用 Maven 项目,因为我要实现它的项目不是 Maven 项目。
问题是,每次我 运行 测试程序时,我都会收到一条错误消息,提示缺少 class。在查找包含缺少的 class 的 jar 并实现它之后,我再次 运行 程序并得到相同的错误但缺少另一个不同的 class。我已经在程序中添加了 4 个罐子,但每次我都不断丢失不同的 classes。关于如何进行这项工作的任何线索,或者是否有更有效的方法使用 Apache POI 或任何其他方法创建 .xlsx 文件 API?
这是我用于测试的代码:
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 和异常:
添加了这些 jar,但最后一个异常(上面那个)不断出现。我添加了 jar poi-ooxml-schemas-3。9.jar 因为它应该是包含缺失 class 的 jar,但异常仍然存在。
这些是我正在使用的所有罐子:https://drive.google.com/open?id=1jFovTLN_wpCwPFL6q_HbPciU7a6wnmuv
正如@Miller Cy Chan 在评论中所说,问题的答案很简单,只要拥有相同版本的罐子(或者至少是最新的,以防并非所有罐子都具有相同的版本)所需的罐子,特别是罐子 poi-4.1.0.jar
、poi-ooxml-4.0.0.jar
、poi-ooxml-schemas-4.1.jar
和 ooxml-schemas-1.4
.