我正在尝试使用国际象棋PGN解析库来解析PGN文件并仅创建一个文本文件。
库:
https://github.com/bhlangonijr/chesslib
我的Maven项目:
https://github.com/divukman/chess_pgn_text/tree/master/pgntotext
问题:
我可以在IntelliJ中运行它(只需运行主类)即可。
如果我创建一个胖子jar(mvn软件包)并使用java -jar target / pgn-to-text-1.0-SNAPSHOT.jar运行它,则会出现以下错误:
Exception in thread "main" com.github.bhlangonijr.chesslib.pgn.PgnException: Error parsing PGN[1, ]:
at com.github.bhlangonijr.chesslib.pgn.PgnHolder.loadPgn(PgnHolder.java:343)
at chess.Main.main(Main.java:18)
Caused by: java.lang.NullPointerException
at com.github.bhlangonijr.chesslib.pgn.PgnHolder.loadPgn(PgnHolder.java:206)
... 1 more
知道为什么从IDE运行时而不是从jar运行时为什么会起作用吗?为什么会由于空指针异常而失败?好像它没有正确读取文件!
最佳答案
看起来PgnProperty p在this行为null,如果您输入的数据格式不正确,则可以为null。可能是您在IntelliJ和fatjar中使用了不同的文件,从而导致了问题。