【发布时间】:2019-06-14 02:25:33
【问题描述】:
我已经完成了一个使用 POI 4.0.1 库的 java 项目。我使用的是 Mac、Eclipse 和 Java 8 更新 201。我不使用 Maven 或类似软件。我已经阅读了过去 22 篇关于该论点的所有帖子,但我找不到解决方案。当我用 Eclipse 测试程序(由 10 个主类组成)时,没问题。一切都是工作。但是当我尝试从命令行启动应用程序时,我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
at Applicazione.main(Applicazione.java:17)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我已经在 Eclipse 中导入了 POI 中所有有用的 jar。特别是:
- POI-4.0.1.jar
- POI-ooxml.jar
- POI-excelant.jar
- POI-ooxml-schemas-4.0.1.jar
- POI-scratchpad.jar
我尝试了前一个罐子的各种组合。我试图从 lib 文件夹中添加 xmlbeans-3.0.2.jar 和其他文件。但什么都没有。在 Eclipse 中它可以工作,但从命令行没有。 我还尝试在 Java 文件夹中移动 POI 文件夹。什么都没有改变。
我还在我的项目中找到了一个名为 .classpath 的文件。如果有帮助,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="/Users/path/Desktop/App/poi-4.0.1/poi-4.0.1.jar"/>
<classpathentry kind="lib" path="/Users/path/Desktop/App/poi-4.0.1/poi-ooxml-4.0.1.jar"/>
<classpathentry kind="lib" path="/Users/path/Desktop/App/poi-4.0.1/poi-examples-4.0.1.jar"/>
<classpathentry kind="lib" path="/Users/path/Desktop/App/poi-4.0.1/poi-excelant-4.0.1.jar"/>
<classpathentry kind="lib" path="/Users/path/Desktop/App/poi-4.0.1/poi-ooxml-schemas-4.0.1.jar"/>
</classpath>
谢谢
【问题讨论】: