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

时间:2017-07-11 17:51:00

标签: java cmd jar stanford-nlp

请耐心等待,因为这是我的第一篇文章,我对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文件的位置,但老实说,我不是确定如何解决它。

3 个答案:

答案 0 :(得分:0)

试试这个 -

function jk_woocommerce_quantity_input_args( $args, $product ) {
    if ( is_singular( 'product' ) ) {

    $args['input_value']    = 1
}
$args['max_value']  = 80;   // Maximum value
$args['min_value']  = 1;    // Minimum value
$args['step']       = a;    // Quantity step 

只有你应该使用包的完整名称。

您必须将java -classpath .;stanford-corenlp-3.8.0.jar src.Test.TestCoreNLP 作为java文件的第一行。

答案 1 :(得分:0)

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

查看.JAR内部并找到该课程。这应该表明包装(如果有的话)是什么。

答案 2 :(得分:0)

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

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

所以在你的情况下我假设你的包是Test,而类文件是TestCoreNLP

你会调用它

java Test.TestCoreNLP

或在您的情况下

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

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

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

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

调用它。