【发布时间】:2019-07-28 16:23:43
【问题描述】:
我正在尝试使用国际象棋 PGN 解析库来解析 PGN 文件并简单地创建一个文本文件。
问题:
我可以在 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 运行时它会起作用吗?为什么会因空指针异常而失败?好像没有正确读取文件!?!
【问题讨论】:
-
你在解析任何文件吗?可能找不到该文件。
-
似乎事件为空。这可能是因为地图事件不包含 p.value() (PgnHolder:173)
-
大家好。谢谢大家的回答。使用的文件路径是硬编码的并且存在于驱动器上,这让我想知道。好像从 jar 运行时它没有正确读取它。我的推理与你在这里所说的一致。我将继续调查,使用不同的文件,将它们打包在 jar 中 :) 等...一旦解决,将更新帖子。
标签: java maven executable-jar fatjar