请忍受,因为这是我的第一篇文章,并且我对CMD和Java命令仍然不太熟悉。我已经看过有关该主题的20多个帖子,但似乎都找不到答案,因为我继续遇到错误。当前,我有一些在NetBeans中运行的代码(TestCoreNLP)。但是,当我尝试以CMD形式运行程序时,没有运气。

我尝试使用以下命令运行.JAR:

C:\Users\Forrest_Hunter\Documents\NetBeansProjects\ParsingEngine\dist>java -jar ParsingEngine.jar "C:\Users\Forrest_Hunter\Desktop\Summer Project\Unassigned Cases\input.xml"


但是我得到这个错误...

Exception in thread "main" java.lang.NoClassDefFoundError: edu/stanford/nlp/pipeline/StanfordCoreNLP
    at Test.TestCoreNLP.main(TestCoreNLP.java:25)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.pipeline.StanfordCoreNLP
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more


我也尝试使用此命令编译代码(成功完成编译):

C:\Users\Forrest_Hunter\Documents\NetBeansProjects\ParsingEngine>javac -classpath .;stanford-corenlp-3.8.0.jar src/Test/TestCoreNLP.java


但是,当我尝试使用以下命令运行代码时:

C:\Users\Forrest_Hunter\Documents\NetBeansProjects\ParsingEngine>java -classpath .;stanford-corenlp-3.8.0.jar src/Test/TestCoreNLP


...我得到这个错误:

Error: Could not find or load main class src.Test.TestCoreNLP


从我阅读过的所有其他线程的理解来看,我认为我的类路径有问题,它没有指向所需的JAR文件的位置,但是老实说我不确定如何解决它。

最佳答案

必须根据您的问题做出一些假设。

您可以通过向主类文件提供完整的包结构来调用Java命令行。

因此,在您的情况下,我假设您的软件包是Test,而类文件是TestCoreNLP

您可以将其调用为


java Test.TestCoreNLP


还是你的情况


java -classpath .;stanford-corenlp-3.8.0.jar Test.TestCoreNLP


您的类路径定义很好,需要检查两件事。

您当前的目录应该是包含目录Test的目录,该目录中有一个类文件TestCoreNLP.class

如果该类在Jar中,请确保您只是使用package-name.class-name调用它

10-07 19:09
查看更多