2017-03-05 2 views
-1

프로그램이 다른 PC에서 제대로 작동합니다. 집에있는 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"))이 null이 아닌 객체가 반환 또는 wbook이 시점 이전에 null이 아닌 객체인지 확인 했습니까?

저는이 문제가 null 인 두 엔티티와 관련되어 있다고 생각합니다. 따라서 작업 표를 작성하기 전에 오류 행과 연관된 항목이 모두 null 오브젝트가 아닌지 점검하십시오.

다음과 같이 할 수 있습니다.

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

wbook 및 wwbcopy가 디버그 모드에서 변수를 인식하지 못하기 때문에 어떻게 체크해야할지 모르겠다. btw 초보자 다. –

+0

@SymbioseStudios는 업데이트 된 답변을 볼 수 있습니다. –

+0

코드에 따르면 통합 문서가 null이 아닙니다. 통합 문서가 디버그 모드에서 변수로 표시되지 않는 이유는 무엇입니까? –