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 application
的lib
文件夹中。
你的代码是过渡依赖于一些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中的ClassNotFoundException
是java.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具有指定名称的类的定义。