创建工作簿时JXL中的NullPointerException

问题描述:

程序在另一台PC上正常工作。我将它导入家用电脑中,无法使用。创建工作簿时JXL中的NullPointerException

错误的线路:

wwbCopy = Workbook.createWorkbook(new File("bstncopy.xls"), wbook); 

堆栈跟踪:基于堆栈跟踪

java.lang.NullPointerException 
    at jxl.read.biff.ExternalSheetRecord.getNumRecords(ExternalSheetRecord.java:135) 
    at jxl.write.biff.ExternalSheetRecord.<init>(ExternalSheetRecord.java:107) 
    at jxl.write.biff.WritableWorkbookImpl.<init>(WritableWorkbookImpl.java:219) 
    at jxl.Workbook.createWorkbook(Workbook.java:325) 
    at jxl.Workbook.createWorkbook(Workbook.java:306) 
    at ReadDataBst.<init>(ReadDataBst.java:28) 
    at Graph.<init>(Graph.java:23) 
    at Dijkstra.<init>(Dijkstra.java:4) 
    at GUIWindowBuilder.<init>(GUIWindowBuilder.java:28) 
    at Main.main(Main.java:6) 
+0

也许'wbook'是'null'?或者'bstncopy.xls'不存在? – Tunaki

,它看起来像你的代码尝试取消引用空指针,因此NullPointerException异常。如你所说错误的行:

wwbCopy = Workbook.createWorkbook(new File("bstncopy.xls"), wbook); 

做你检查Workbook.createWorkbook(new File("bstncopy.xls"))返回一个非空的对象或wbook是这个点之前的非null对象?

我相信问题与这两个实体为空相关联。因此,在创建工作簿之前,请检查与错误行相关的项目是否都不是空对象。

你可以做这样的事情。

File file = new File("bstncopy.xls"); 
if(file != null && wbook != null){ 
    wwbCopy = Workbook.createWorkbook(file, wbook); 
} 
+0

我不知道如何检查这一点,因为wbook和wwbcopy没有显示在调试模式下的变量,我不明白..顺便说一句,我是初学者。 –

+0

@SymbioseStudios看到我更新的答案。 –

+0

根据您的代码,工作簿不为null。为什么工作簿在调试模式下没有显示为变量? –