这个问题似乎已被回答了几次(What does "Could not find or load main class" mean?和https://stackoverflow.com/a/16208709/2771315),但由于某些原因,没有一个共享方法正在运作。
到目前为止我做了什么。
1)导航到终端中包含CoreNLP源文件的目录:~/Downloads/CoreNLP-master/src
2)选择其中一个包作为测试用例,例如执行了命令java -cp "*" -mx5g edu.stanford.nlp.sentiment.SentimentPipeline -file foo.txt
(根据文档,http://nlp.stanford.edu/sentiment/code.html)
我通过更改classpath -cp
条件并使用set CLASSPATH = $CLASSPATH=~/Downloads/CoreNLP-master/src
设置它来尝试上述变体,但似乎无法获得结果。有谁知道我做错了什么?如果我冒险猜测,我认为类路径有问题,但我不确定是什么。
答案 0 :(得分:3)
类路径应指向类,而不是源文件。如果您正在使用代码的GitHub版本,则可以将类路径设置为:
-cp ~/Downloads/CoreNLP-master/classes:/path/to/corenlp/models.jar
您可以在http://nlp.stanford.edu/software/stanford-corenlp-models-current.jar找到最新版本的CoreNLP型号(警告:> 200MB文件)
如果您有一个corenlp版本,则应将类路径设置为:
-cp /path/to/corenlp.jar:/path/to/corenlp/models.jar
例如:
export CLASSPATH=stanford-corenlp-3.9.1.jar:stanford-corenlp-3.9.1-models.jar
corenlp jar和模型jar都应该显示在代码的压缩版本中(例如,来自http://nlp.stanford.edu/software/corenlp.shtml)
答案 1 :(得分:1)
这对我来说非常好。
java -cp "../*" -mx1g edu.stanford.nlp.sentiment.SentimentPipeline -file test.txt
在classes目录中运行此命令。
答案 2 :(得分:0)
您正在尝试运行该程序,而不是编译它。