我已经写了一个java程序把输入的xml文件转换成一些其他的xml文件。在这样做的时候,我使用了excel文件,为了访问xml文件,我使用了apache-poi库。
当我在eclipse中运行我的程序时,它工作得很好,并且给出了所需的结果。现在,我将项目导出到jar文件中,并且在导出到jar时选择了我的主类。但是当我运行jar文件时,我得到了以下异常:
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?
发布于 2015-11-24 00:43:54
Apache POI库似乎不在classpath中
将库的位置添加到系统的PATH变量中(假设windows基于D:\驱动器)。
发布于 2015-11-24 00:45:23
默认情况下,导出项目不包含外部jar。您必须将第三方lib添加到类路径中:
java -cp <lips> -jar EDR_to_DER_with_excel.jar发布于 2015-11-24 22:13:02
我找到解决方案了。我遵循了简单的方法。
-> Right click on project
-> Export
-> as Runnable jar
-> select radio button "Package required libraries into generated jar"
-> finish这种方法对我很有效:)
https://stackoverflow.com/questions/33876135
复制相似问题