簡體   English   中英

如何從依賴於JAR文件的CMD編譯並運行Java文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM