2017-03-05 95 views
-1

程序在另一臺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

回答

0

,它看起來像你的代碼嘗試取消引用空指針,因此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。爲什麼工作簿在調試模式下沒有顯示爲變量? –

相關問題