java.lang.ClassNotFoundException:jxl.read.biff.BiffException

在我的J2EE Web项目中,我有一个简单的JSP(HomeScreen.jsp)和一个servlet类(HomeScreenServlet.java)。 这个类正在调用另一个类(PDFAwt)的非静态方法(PDFAwt1),而这个类通常会调用很多不同类的其他方法。

当我尝试创buildPDFAwt的对象来调用PDFAwt1()时 ,我得到一个exception:

java.lang.ClassNotFoundException: jxl.read.biff.BiffException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) ... 

这里是PDFAwt1()的一个小预览

 CreateExcelFile cef = new CreateExcelFile(); ImageConversion.setupPDFToPNG(ReferencePath); ImageConversion.setupPDFToPNG(NewPath); File folder = new File(ReferencePath + "/png"); File[] f = folder.listFiles(); File folder1 = new File(NewPath + "/png"); File[] f1 = folder1.listFiles(); ... 

CreateExcelFile()

 import jxl.Workbook; import jxl.format.Colour; ... public class CreateExcelFile { public CreateExcelFile() { try { if (!new File("LabelsTemplate.xls").exists()) { WritableWorkbook workbook = Workbook.createWorkbook(new File("LabelsTemplate.xls")); WritableSheet sheet = workbook.createSheet("Sheet1", 0); ... } } } 

无法find问题的确切位置..请帮助..

如果您使用的是任何IDE ,则在类path中缺lessjar,请在运行该应用程序之前下载相应的jar并将其设置在构buildpath中。 如果您不使用任何IDE,请将相应的jar添加到您的web applicationlib文件夹中。

你的代码是过渡依赖于一些jars而你在类path中缺less这些。 Maven是避免这种传递依赖的好工具。 如果你不使用maven,那么你需要find你正在使用的jars ,要求所有其他jars 。 作为第一步,尝试find包含以下类的jar:

 jxl.read.biff.BiffException 
 public class BiffException extends JXLException 

阅读biff文件时抛出exception

这个例外有一些消息应该提供一些关于原因的信息:

 excelFileNotFound excelFileTooBig expectedGlobals passwordProtected streamNotFound unrecognizedBiffVersion unrecognizedOLEFile 

打印信息查看确切的问题。

你可以在这里find缺less的jar

顾名思义,Java中的ClassNotFoundExceptionjava.lang.Exception一个子类,当Java虚拟机试图加载一个特定的类并且在classpath中找不到所请求的类时就会出现。

关于这个exception的另一个重要的一点是,它是一个检查exception ,你需要明确地提供exception处理,而使用方法可能会抛出ClassNotFoundException在java中通过使用try-catch块或使用throws子句。

Oracle文档

 public class ClassNotFoundException extends ReflectiveOperationException 

在应用程序尝试使用以下命令通过其string名称加载类时抛出:

  • 类Class中的forName方法。
  • 类ClassLoader中的findSystemClass方法。
  • 类ClassLoader中的loadClass方法。

但没有find具有指定名称的类的定义。

Interesting Posts