请忍受,因为这是我的第一篇文章,并且我对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调用它