如何从依赖于JAR文件的CMD编译和运行java文件?

如何从依赖于JAR文件的CMD编译和运行java文件?,java,cmd,jar,stanford-nlp,Java,Cmd,Jar,Stanford Nlp,请容忍我,因为这是我的第一篇文章,我还不太熟悉CMD和java命令。我已经看过了20多篇关于这个话题的帖子,但似乎没有一篇有答案,因为我不断地遇到错误。目前,我有一个在NetBeans中运行的代码(TestCoreNLP)。但是,当我尝试运行CMD格式的程序时,没有运气 我已尝试使用以下命令运行.JAR: C:\Users\Forrest_Hunter\Documents\NetBeansProjects\ParsingEngine\dist>java -jar ParsingEngine

请容忍我,因为这是我的第一篇文章,我还不太熟悉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" 
C:\Users\Forrest_Hunter\Documents\NetBeansProjects\ParsingEngine>java -classpath .;stanford-corenlp-3.8.0.jar src/Test/TestCoreNLP
但是我得到了这个错误

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\dist>java -jar ParsingEngine.jar "C:\Users\Forrest_Hunter\Desktop\Summer Project\Unassigned Cases\input.xml" 
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 -classpath .;stanford-corenlp-3.8.0.jar src.Test.TestCoreNLP
只是您应该在包中使用完整的名称

您必须有
包src.Test作为java文件的第一行。

试试这个-

java -classpath .;stanford-corenlp-3.8.0.jar src.Test.TestCoreNLP
只是您应该在包中使用完整的名称


您必须有
包src.Test作为java文件的第一行。

我怀疑包名不是src.Test;至少,这看起来很可疑。可能是TestCoreNLP没有指定包


查看.JAR内部并找到类。这应该表明包是什么,如果有的话。

我怀疑包名不是src.Test;至少,这看起来很可疑。可能是TestCoreNLP没有指定包


查看.JAR内部并找到类。如果有的话,那应该说明包裹是什么。

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

通过向主类文件提供完整的包结构来调用java命令行

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

你可以把它当作

java Test.TestCoreNLP
还是你的情况

java-classpath。;stanford-corenlp-3.8.0.jar Test.TestCoreNLP
您的类路径定义很好,需要检查两件事

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


如果类在Jar中,那么请确保您只是使用包名调用它。类名必须根据您的问题做出一些假设

通过向主类文件提供完整的包结构来调用java命令行

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

你可以把它当作

java Test.TestCoreNLP
还是你的情况

java-classpath。;stanford-corenlp-3.8.0.jar Test.TestCoreNLP
您的类路径定义很好,需要检查两件事

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


如果类在Jar中,然后确保仅使用包名调用它。类名

是否可以尝试仅使用类名TestCoreNLP而不使用src/Test文件夹名运行该类?是否可以尝试仅使用类名TestCoreNLP而不使用src/Test文件夹名运行该类?是否应该在.class文件所在的目录中运行此命令是我的第一行是packagetest.No,它来自于调用javac命令的同一个文件夹<代码>C:\Users\Forrest\u Hunter\Documents\NetBeansProjects\ParsingEngine
我是否应该在.class文件所在的目录中运行此命令?我的第一行是packagetest.No,它来自于调用javac命令的同一个文件夹<代码>C:\Users\Forrest\u Hunter\Documents\NetBeansProjects\parsingene
我必须同意你的说法。现在我的代码的层次结构是解析引擎>源代码包>测试(这是包)>TestCoreNLP.java(这是我的java文件)。有什么想法吗?我必须同意你的说法。现在我的代码的层次结构是解析引擎>源代码包>测试(这是包)>TestCoreNLP.java(这是我的java文件)有什么想法吗?嗨,谢谢!这似乎奏效了!但是,我必须将其他依赖jar文件添加到scr文件夹中,该文件夹保存着我的.java文件所在的测试文件夹。再次感谢!!嗨,谢谢你!这似乎奏效了!但是,我必须将其他依赖jar文件添加到scr文件夹中,该文件夹保存着我的.java文件所在的测试文件夹。再次感谢!!