私はEclipseにプロジェクトを持っています。Eclipse 内から実行すると、すべて正常に動作します。しかし、Ant ビルド スクリプトを実行し、コマンド ラインまたはバッチ スクリプトを使用して JAR を実行すると、NullPointerException が発生します。
問題の NullPointerException は、ソースからコンパイルしたサードパーティの JAR からスローされています。しかし、それが問題だとは思いません-Eclipse内で実行すると機能します!
何が原因で、問題を切り分けて修正するにはどうすればよいですか?
表示できるスタック トレースは次のとおりです。
java.lang.NullPointerException
at java.io.FilterInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedByte(Unknown Source)
at com.jhlabs.dbf.DBFFile.readHeader(DBFFile.java:129)
at com.jhlabs.dbf.DBFFile.<init>(DBFFile.java:76)
at com.jhlabs.map.shapefile.Shapefile.<init>(Shapefile.java:102)
at com.jhlabs.map.layer.ShapefileLayer.<init>(ShapefileLayer.java:62)
クラスパスを確認しました - サードパーティの JAR は確かにクラスパス上にあります。ただし、そうでない場合は NoClassDefFoundException が発生する可能性が最も高いため、JAR でクラスを利用しようとしたため、それを期待していました。
クラスローダーを使用した場所も確認しましたが、null ではなく、適切なファイルを正しくロードしていました。