如何读取Java-Web Start应用程序上的excel文件

我正在开发一个java-web-start应用程序,它使用java POI读取excel文件。 我的问题是每当我运行我的代码,它返回一个错误。

Exception in thread "Thread-13" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/WorkbookFactory at digicare.tracking.serial.BulkUpload.UploadProgress$1read2.run(UploadProgress.java:89) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.WorkbookFactory at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) 

这是我的代码:

 try { InputStream inp = new FileInputStream(FilePath); Workbook wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt(0); int maxrows = sheet.getPhysicalNumberOfRows(); for (int r = 1; r < maxrows; r++) { Thread.sleep(1000); lblCurrentRow.setText(String.valueOf(r)); prbProgBar.setValue(r); txtOutPut.append(String.format("Done!!\n")); } } catch (Exception e) { e.printStackTrace(); } 

我之前遇到过这个,实际上不是只有一个jar文件要添加,还有另外一个,命名为:poi-ooxml-x.jar(其中x是版本),它是包含WorkbookFactory的文件,而不是poi-x .jar,你必须包括他们两个

 ---------------------------------------------------------------------------- 

编辑我做了一些研究,我认为你的类path问题是相关的是你的项目是一个Java的web启动应用程序:

我可以依赖Manifest文件中的Class-Path吗?

Java Web Start不支持清单文件中的Class-Path条目。 Class-Path属性完全是以文件为中心的,Java Web Start和JNLP是以Web为中心的,即基于URL。 因此,这两个模型不容易合并。

您可以在JNLP文件中列出多个JAR文件,而不是依赖于Class-Path条目,例如:

 <resources> <jar href="A.jar"/> <jar href="B.jar"/> </resources> 

这里是我find它的链接: http : //webstartfaq.com/#52

看起来不能findWorkbookFactory。 假设您已经将Apache POI jar放入构buildpath中。 你可以看到,如果org.apache.poi.ss.usermodel.WorkbookFactory类在它自己的jar文件吗?

这将帮助你,

使用Apache POI库v3.8或以上( 下载 )

希望这个链接将帮助你

你错过了一些POIjar子。 具体来说,你肯定错过了poi-ooxml jar,但你也可能会错过一些其他的…

Apache POI提供了一个方便的页面列出组件,他们的jar子和依赖关系 。 正如该页面所解释的那样,如果您想使用常见的org.apache.poi.ss.usermodel类(例如WorkbookFactory ),您需要主POI jar,POI-OOXML jar以及它们各自的依赖项。

如果你添加这两个jar子和他们的依赖 ,和/或切换到maven和列出你的项目取决于poipoi-ooxml你会有你需要的类