opennlp.groovy具有NullPointerException

opennlp.groovy具有NullPointerException,groovy,opennlp,Groovy,Opennlp,我试图从GitHub获得以下代码片段,以便在Groovy脚本中使用OpenNLP工具 (来自的OpenNLP类) 尝试运行脚本时出现以下错误: Caught: java.lang.ExceptionInInitializerError java.lang.ExceptionInInitializerError at Greetings.class$(Greetings.groovy) at Greetings.$get$$class$OpenNLP(Greetings.groov

我试图从GitHub获得以下代码片段,以便在Groovy脚本中使用OpenNLP工具

(来自的OpenNLP类)

尝试运行脚本时出现以下错误:

Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
    at Greetings.class$(Greetings.groovy)
    at Greetings.$get$$class$OpenNLP(Greetings.groovy)
    at Greetings.run(Greetings.groovy:13)
Caused by: java.lang.NullPointerException: Cannot invoke method withInputStream() on null object
    at OpenNLP.<clinit>(Greetings.groovy:25)
    ... 3 more
捕获:java.lang.ExceptionInInitializeError
java.lang.ExceptionInInitializeError
在Greetings.class$(Greetings.groovy)
在问候语中。$get$$class$OpenNLP(问候语.groovy)
at Greetings.run(Greetings.groovy:13)
原因:java.lang.NullPointerException:无法调用null对象上的withInputStream()方法
在OpenNLP。(问候。groovy:25)
... 3个以上

我将en-token.bin和en-pos-maxent.bin放在脚本要查找的正确位置,但是classLoader.getResource(“opennlp/en-token.bin”)在打印时确实为null。有什么想法吗?

确保
en-token.bin
en-pos-maxent.bin
文件位于名为
opennlp
的目录中,并且类路径包括
opennlp
的父目录


请注意,执行Groovy脚本时,
/
包含在类路径中,因此,如果您的
opennlp
目录与Groovy脚本位于同一目录中,并且您在该目录中时也调用了Groovy脚本,那么它应该可以工作(至少对我来说是这样)。但是,如果您在当前不在该目录下的情况下执行脚本(例如,通过使用类似
path/to/script.groovy
)的路径),它将无法工作。在这种情况下,您可以使用
groovy-cp path/to path/to/script.groovy
调用它,从而手动将
opennlp
目录的父目录放入类路径。

如果不使用抓取,而是手动将所需的jar放在类路径上,是否有效?我的回答有用吗?
Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
    at Greetings.class$(Greetings.groovy)
    at Greetings.$get$$class$OpenNLP(Greetings.groovy)
    at Greetings.run(Greetings.groovy:13)
Caused by: java.lang.NullPointerException: Cannot invoke method withInputStream() on null object
    at OpenNLP.<clinit>(Greetings.groovy:25)
    ... 3 more