2011-08-14 27 views
5

我有一個簡單的Java文件Q.java,它依賴於外部庫文件X.jar。 Q.java和X.jar都在同一個目錄下。我可以通過執行命令行來編譯Q.java:「javac -cp X.jar Q.java」。這會生成一個Q.class文件。我現在如何運行它?我嘗試了所有這些:從依賴於jar文件的命令行運行Java程序?

1)的Java Q 2)java命令X.jar Q

我不斷收到一個 異常在線程 「主要」 java.lang.NoClassDefFoundError:Q 產生的原因:java的.lang.ClassNotFoundException:Q

那麼現在我該如何從命令行運行這個類文件?

+0

Q.java中是否有'package'聲明? –

+0

@TedHopp這會有所作爲嗎?我有一個類似的問題:http://stackoverflow.com/questions/43156180/classpath-option-works-for-javac-but-not-for-java-windows –

回答

10
java -cp X.jar:. Q 

您必須在classpath中指定要使用JAR依賴項和當前本地目錄來解析類。


編輯建議的意見:

在Windows上,;更換:

java -cp X.jar;. Q 
+4

在Windows中,你必須使用「;」,而不是「:」,所以它會是「java -cp X.jar ;. Q」 –

0

設置類路徑中的當前目錄,它應該解決的問題。大多數情況下,我們需要classpath中的當前目錄,所以我通常建議設置「。」。 (不帶引號),而不是爲每次運行設置CLASSPATH環境變量。