我一直在努力修复NoClassDefFoundError异常但没有成功。现在变得有点沮丧。我正在创建一个使用Apache POI库读取excel文件的应用程序。这就是我在做的事情:
下载库的二进制发行版并将其保存在名为Apache POI库的桌面文件夹中
从zip文件夹中提取文件
我在Netbeans上创建了一个新项目并称之为apachePOI
在我的项目的Netbeans的项目导航选项卡上,我转到右键单击库>添加jar / Folder ..并从下载的库中导入所有.jar文件。共添加了11个.jar文件
我去了USER环境变量,并选择添加一个名为classpath的新环境变量。在变量值上,我添加了库中每个11.jar文件的路径。一条这样的路径是C:\Users\wks\Desktop\Apache POI Library\poi-bin-3.17-20170915\poi-3.17
。我用分号
此后,我创建了一个非常简单的TestClass类,它编译得很好,但是没有运行错误NoClassDefFoundError。我的类中的代码除了声明像XSSFWorkbook workbook = new XSSFWorkbook(file)
这样的XSSFWorkbook之外什么也没做。
我没有使用maven并且选择不使用。无法弄清楚我做错了什么,虽然我怀疑我错误地将我的库添加到类路径中,如上面的步骤(5)所示
答案 0 :(得分:2)
大多数情况下,当缺少某些依赖项时会发生此错误。我看到你正在尝试使用XSSFWorkbook
但是根据Apache网站,这个组件需要额外的依赖poi-ooxml
。您还应添加xmlbeans-2.3.0.jar
:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
您可以在此link下找到所有必需依赖项的列表。
在我看来,你应该开始使用Maven,即使是一个简单的程序。这是非常有用的工具,也是大项目所必需的。