[英]How do I compile and run a java file from CMD that is dependent on JAR files?
請忍受,因為這是我的第一篇文章,並且我對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 -classpath .;stanford-corenlp-3.8.0.jar src.Test.TestCoreNLP
只是您應該在包中使用完整名稱。
您必須擁有package src.Test;
作為Java文件中的第一行。
我懷疑程序包名稱不是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調用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.