如何从依赖于JAR文件的CMD编译和运行java文件?
请容忍我,因为这是我的第一篇文章,我还不太熟悉CMD和java命令。我已经看过了20多篇关于这个话题的帖子,但似乎没有一篇有答案,因为我不断地遇到错误。目前,我有一个在NetBeans中运行的代码(TestCoreNLP)。但是,当我尝试运行CMD格式的程序时,没有运气 我已尝试使用以下命令运行.JAR:如何从依赖于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
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文件所在的测试文件夹。再次感谢!!