2017-03-05 9 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

スタックトレースに基づいて、それはNULLポインタ、したがって、NullPointerExceptionが間接参照にあなたのコードの試みのように見えます。あなたは、エラーの行示唆したように:

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

をあなたはWorkbook.createWorkbook(new File("bstncopy.xls"))戻り、null以外のオブジェクトまたはwbookはこの時点までにnull以外のオブジェクトであることを確認しましたか?

私はこの問題がこれらの2つのエンティティが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ではありません。ブックがデバッグモードで変数として表示されないのはなぜですか? –

関連する問題