为什么我在使用使用 poi jar 的 jar 时得到 java.lang.NoClassDefFoundError

Why I'm Getting java.lang.NoClassDefFoundError while using jar which use poi jars

我正在使用 Eclipse 来编译 & 运行 Java 应用程序。我正在创建几个项目,我将它们导出为 jar 文件并在其他项目中将它们作为 jar 文件导入(添加到构建路径)。我按如下方式添加罐子:

这是我第一次收到此错误:

java.lang.NoClassDefFoundError

我创建了一个使用 POI jar 的项目。项目名称是 "A"。我将此项目导出到 A.jar 文件并将其导入(添加到构建路径)到 B 项目中。 当我 运行 启动 B 项目并尝试初始化(调用构造函数)来自 A.jar 的对象时,出现以下错误:

java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/CellStyle

我检查了以下线程:

但是没有找到答案。

  1. 为什么会出现此错误?这不是我第一次 importing/adding 构建路径。但是现在我遇到了一个错误。

  2. 如何解决?

  1. 你得到这个错误,因为 classloader 没有找到 class.

  2. 您必须将包含 class poi-<version>.jar 的 jar 添加到 class 路径。

构建路径只定义了编译器的路径。它没有定义 class 在运行时位于 class 路径中。