我一直在努力修复 NoClassDefFoundError 异常,但没有成功。现在有点沮丧。我正在创建一个应用程序来使用 Apache POI 库读取 excel 文件。这就是我正在做的:
下载该库的二进制发行版并将其保存在名为 Apache POI 库的桌面文件夹中
从 zip 文件夹中提取的文件
我在 Netbeans 上创建了一个新项目并将其命名为 apachePOI
在我的项目的 Netbeans 项目导航选项卡上,我右键单击库 > 添加 jar/文件夹.. 并从下载的库中导入所有 .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 之类的之外什么也不做XSSFWorkbook workbook = new XSSFWorkbook(file)。
我没有使用maven并且选择不使用。无法弄清楚我做错了什么,尽管我怀疑我按照上面的步骤(5)将我的库添加到类路径是错误的
大多数时候,当缺少某些依赖项时,就会发生此错误。我可以看到您正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)
您可以在此链接下找到所有必需依赖项的列表。
在我看来,即使对于一个简单的程序,您也应该开始使用 Maven。这是一个非常有用的工具,对于大型项目来说是必需的。
| 归档时间: |
|
| 查看次数: |
15638 次 |
| 最近记录: |