尝试使用类路径运行Java程序;java无法找到我的原始编译类

尝试使用类路径运行Java程序;java无法找到我的原始编译类,java,javac,Java,Javac,这里是爪哇岛。我正在尝试编译一个运行java程序的程序,该程序使用stanford-corenlp-3.9.1.jar。我试图用MacOS终端编译这个。以下是各种命令的输出 javac QuestionsToAnswer.java 这会导致大量错误 QuestionsToAnswer.java:5:错误:包edu.stanford.nlp.trees不存在 导入edu.stanford.nlp.trees.Tree; ^ QuestionsToAnswer.java:6:错误:包edu.stan


这里是爪哇岛。我正在尝试编译一个运行java程序的程序,该程序使用stanford-corenlp-3.9.1.jar。我试图用MacOS终端编译这个。以下是各种命令的输出

javac QuestionsToAnswer.java

这会导致大量错误
QuestionsToAnswer.java:5:错误:包edu.stanford.nlp.trees不存在
导入edu.stanford.nlp.trees.Tree;
^
QuestionsToAnswer.java:6:错误:包edu.stanford.nlp.trees.tregex不存在
导入edu.stanford.nlp.trees.tregex.TregexMatcher;
^
...

因此,我运行以下命令:
javac-cp stanford-corenlp-3.9.1.jar QuestionsToAnswer.java

这将按预期工作,并创建一个QuestionToAnswer.class文件

然后当我尝试运行程序时
java问题回答

它给了我以下错误:
错误:无法初始化主类问题回答
原因:java.lang.NoClassDefFoundError:edu/stanford/nlp/trees/Tree

为了解决这个问题,我将classpath添加到java命令中,以便它能够从斯坦福大学的库中找到

java-cp stanford-corenlp-3.9.1.jar问题回答

然后它给我以下错误:
错误:无法找到或加载主类问题解答
原因:java.lang.ClassNotFoundException:问题回答


添加类路径后,java无法找到我的原始类文件,该类文件已编译并显示在目录中。我在这里做错了什么?

jar文件必须在类路径中,因为您的代码使用这个jar中的类。所以Java必须能够找到它们

包含您的类的目录也必须在类路径中,否则Java可能找不到它

java -cp .:stanford-corenlp-3.9.1.jar QuestionsToAnswer
在Unix/MacOS上,或

java -cp .;stanford-corenlp-3.9.1.jar QuestionsToAnswer

在Windows上。

请显示您的问题解答类的代码。哇,这解决了它。。。谢谢你的帮助。。。现在我觉得这个问题很愚蠢。我应该删除它吗?不。接受答案,这样它就可以得到学分。