在我的J2EE Web项目中,我有一个简单的JSP(HomeScreen.jsp)和一个servlet类(HomeScreenServlet.java)。这个类从另一个类(PDFAwt)调用非静态方法(PDFAwt1),后者又通常会从许多不同的类中调用许多其他方法。
当我尝试创建PDFAwt的对象以调用PDFAwt1()时,我得到一个例外:
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);
...
}
}
}
无法找到问题的确切位置..请帮助..
答案 0 :(得分:2)
在类路径中缺少jar,如果您使用任何IDE
,请在运行应用程序之前下载相应的jar并将其设置在构建路径中。
如果您没有使用任何IDE,请将相应的jar添加到lib
的{{1}}文件夹中。
答案 1 :(得分:0)
您的代码过于依赖某些jars
,而您在类路径中缺少这些代码。 Maven
是避免此类传递依赖的好工具。如果您不使用maven,那么您需要找到您正在使用的jars
,需要所有其他jars
。作为第一步,尝试找到包含以下类的jar:
jxl.read.biff.BiffException
答案 2 :(得分:0)
public class BiffException extends JXLException
读取biff文件时抛出异常
此异常有许多消息应提供有关原因的一些信息:
excelFileNotFound
excelFileTooBig
expectedGlobals
passwordProtected
streamNotFound
unrecognizedBiffVersion
unrecognizedOLEFile
打印信息以查看确切的问题。
你可以找到丢失的jar here
顾名思义,ClassNotFoundException
在Java中是java.lang.Exception
的子类,当 Java虚拟机尝试加载特定类并且未找到时类路径中请求的类。
关于此异常的另一个重点是,它是一个已检查的异常,并且您需要在使用可能通过使用try在Java中抛出ClassNotFoundException
的方法时提供显式异常处理-catch块或使用throws子句。
public class ClassNotFoundException
extends ReflectiveOperationException
当应用程序尝试使用以下命令通过其字符串名称加载类时抛出:
但是找不到具有指定名称的类的定义。