为什么我在使用使用 poi jar 的 jar 时得到 java.lang.NoClassDefFoundError
Why I'm Getting java.lang.NoClassDefFoundError while using jar which use poi jars
我正在使用 Eclipse 来编译 & 运行 Java 应用程序。我正在创建几个项目,我将它们导出为 jar 文件并在其他项目中将它们作为 jar 文件导入(添加到构建路径)。我按如下方式添加罐子:
- 将jar复制到我想要的项目中
- 右键点击jar -> 构建路径 -> 添加到构建路径
这是我第一次收到此错误:
java.lang.NoClassDefFoundError
我创建了一个使用 POI jar 的项目。项目名称是 "A"。我将此项目导出到 A.jar 文件并将其导入(添加到构建路径)到 B 项目中。
当我 运行 启动 B 项目并尝试初始化(调用构造函数)来自 A.jar 的对象时,出现以下错误:
java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/CellStyle
我检查了以下线程:
- Why am I getting a NoClassDefFoundError in Java?
- java.lang.NoClassDefFoundError while running jar
但是没有找到答案。
为什么会出现此错误?这不是我第一次 importing/adding 构建路径。但是现在我遇到了一个错误。
如何解决?
你得到这个错误,因为 classloader 没有找到 class.
您必须将包含 class poi-<version>.jar
的 jar 添加到 class 路径。
构建路径只定义了编译器的路径。它没有定义 class 在运行时位于 class 路径中。
我正在使用 Eclipse 来编译 & 运行 Java 应用程序。我正在创建几个项目,我将它们导出为 jar 文件并在其他项目中将它们作为 jar 文件导入(添加到构建路径)。我按如下方式添加罐子:
- 将jar复制到我想要的项目中
- 右键点击jar -> 构建路径 -> 添加到构建路径
这是我第一次收到此错误:
java.lang.NoClassDefFoundError
我创建了一个使用 POI jar 的项目。项目名称是 "A"。我将此项目导出到 A.jar 文件并将其导入(添加到构建路径)到 B 项目中。 当我 运行 启动 B 项目并尝试初始化(调用构造函数)来自 A.jar 的对象时,出现以下错误:
java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/CellStyle
我检查了以下线程:
- Why am I getting a NoClassDefFoundError in Java?
- java.lang.NoClassDefFoundError while running jar
但是没有找到答案。
为什么会出现此错误?这不是我第一次 importing/adding 构建路径。但是现在我遇到了一个错误。
如何解决?
你得到这个错误,因为 classloader 没有找到 class.
您必须将包含 class
poi-<version>.jar
的 jar 添加到 class 路径。
构建路径只定义了编译器的路径。它没有定义 class 在运行时位于 class 路径中。