首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行jar文件时,线程"main“java.lang.NoClassDefFoundError异常: org/apache/poi/ss/usermodel/Workbook

问运行jar文件时,线程"main“java.lang.NoClassDefFoundError异常: org/apache/poi/ss/usermodel/Workbook
EN

Stack Overflow用户
提问于 2015-11-24 00:41:42
回答 4查看 1.8K关注 0票数 2

我已经写了一个java程序把输入的xml文件转换成一些其他的xml文件。在这样做的时候,我使用了excel文件,为了访问xml文件,我使用了apache-poi库。

当我在eclipse中运行我的程序时,它工作得很好,并且给出了所需的结果。现在,我将项目导出到jar文件中,并且在导出到jar时选择了我的主类。但是当我运行jar文件时,我得到了以下异常:

代码语言:javascript
复制
D:\>java -jar EDR_to_DER_with_excel.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.unisys.xml.TestExcel. Program will exit.

该错误与我正在使用的库有关。但我不知道为什么它会到来,因为我能够在eclipse中运行该程序。这个库类在jar file>中可用吗?如果不可用,我如何在导出时将其提供给jar?

EN

回答 4

Stack Overflow用户

发布于 2015-11-24 00:43:54

Apache POI库似乎不在classpath中

将库的位置添加到系统的PATH变量中(假设windows基于D:\驱动器)。

票数 2
EN

Stack Overflow用户

发布于 2015-11-24 00:45:23

默认情况下,导出项目不包含外部jar。您必须将第三方lib添加到类路径中:

代码语言:javascript
复制
java -cp <lips> -jar EDR_to_DER_with_excel.jar
票数 2
EN

Stack Overflow用户

发布于 2015-11-24 22:13:02

我找到解决方案了。我遵循了简单的方法。

代码语言:javascript
复制
-> Right click on project 
-> Export 
-> as Runnable jar 
-> select radio button "Package required libraries into generated jar"
-> finish

这种方法对我很有效:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33876135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档