2017-07-11 1 views
1

これは私の最初の投稿であり、私はまだCMDとjavaコマンドにはあまりよく慣れていないので、私に同行してください。私はすでにこのトピックについての20以上の投稿を見てきましたが、私はエラーに陥り続けているので答えを得られないようです。現在、私はNetBeansで動作するいくつかのコード(TestCoreNLP)を持っています。しかし、プログラムのCMDを実行しようとすると、不運です。JARファイルに依存するCMDからJavaファイルをコンパイルして実行するにはどうすればよいですか?

私は、このコマンドを使用して.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 

しかし、このコマンドでコードを実行しようとすると:私は私のクラスパスに問題があると思うし、それことを、私が読んだ他のすべてのスレッドから私の理解から

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

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

...私はこのエラーを取得します必要なJARファイルの場所を指していませんが、正直なところそれを修正する方法がわかりません。

+0

パッケージname.class名でそれを呼び出していることを確認してくださいあなたはSRC /テストせずに、単にクラス名TestCoreNLPでクラスを実行しようとすることができますフォルダ名? – OTM

答えて

0

あなたの質問に基づいていくつかの前提を設定する必要があります。

あなたは完全なパッケージ構造でメインクラスファイルを提供することによってjavaコマンドラインを呼び出します。

ので、あなたの場合、私はあなたのパッケージがTest、およびクラスファイルであると推定TestCoreNLP

あなたは

java Test.TestCoreNLP 

として、またはあなたのケース

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

あなたのクラスパスにそれを呼び出します。定義は良いです、2つのことを確認する。

現在のディレクトリは、ディレクトリTestを含むディレクトリである必要があります。そのディレクトリにクラスファイルTestCoreNLP.classがあります。

クラスは、JAR内にある場合は、あなただけの

+0

こんにちは、ありがとうございます!これはうまくいくようでした!私はしかし、私の.javaファイルがあるTestフォルダを保持するscrフォルダに他の従属jarファイルを追加する必要がありました。再度、感謝します!! –

0

はこれを試してみてください - あなたがパッケージに完全な名前を使用する必要があることだけを

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

その。

Javaファイルの最初の行にはpackage src.Test;が必要です。

+0

.classファイルがあるディレクトリでこのコマンドを実行する必要がありますか?そして、私の最初の行はパッケージテストです。 –

+0

javacコマンドを実行したフォルダと同じフォルダからはいません。 'C:\ Users \ Forrest_Hunter \ Documents \ NetBeansProjects \ ParsingEngine' –

0

パッケージ名がsrc.Testではないと思われます。少なくとも、それは非常に疑わしいと思われる。 TestCoreNLPにパッケージが指定されていない可能性があります。

.JARの中を見て、クラスを見つけます。それはパッケージがあればそれが何であるかを示すはずです。

+0

あなたの言うことに同意する必要があります。現在、私のコードの階層は、Parsing Engine> Source Packages> Test(これはパッケージです)> TestCoreNLP.java(これは私のJavaファイル)です。 –

関連する問題