使用Apache POI的Java程序给了我奇怪的异常

时间:2015-05-13 20:42:20

标签: java apache netbeans apache-poi

我在实施项目时遇到了一些严重的困难。我有以下代码:

FileInputStream file = new FileInputStream(new File("src/retestchecker/test_sheet.xlsx"));
//Get the workbook instance for XLS file 
XSSFWorkbook workbook = new XSSFWorkbook(file);

//Get first sheet from the workbook
XSSFSheet sheet = workbook.getSheetAt(0);

Row row = sheet.getRow(0);
Cell x = row.getCell(3);

System.out.println(x);

我收到此错误,我不确定其含义:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
    at retestchecker.RetestChecker.main(RetestChecker.java:23)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
Java Result: 1

我正在使用Netbeans和2015年5月11日发布的最新版本的Apache POI。

错误引用的第23行是这一行:

XSSFWorkbook workbook = new XSSFWorkbook(file);

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这意味着编译器无法找到名为org.apache.xmlbeans.XmlException的类 你必须找到apache poi的哪些.jar文件定义它并将它们添加到你的项目的类路径中。

答案 1 :(得分:1)

您缺少xmlbeans jar(可能还有更多)

Apache POI有一个handy page describing all of the components and their dependencies,或者如果您使用Maven,它们都会为您照顾

在二进制版本中,您将在ooxml-lib子目录中找到xmlbeans。将其以及任何其他jar needed for the components you're using添加到您的类路径