2013-09-27 143 views
0

我無法讓程序從命令行運行。我正在從src文件夾執行它,這些文件存儲在包proj2中。Java類路徑問題

所以,當我運行 java -cp "proj2/*;proj2/antlr-3.5.jar" proj2.myClass

我收到"Error: Could not find or load main class"

如果我刪除了classpath和只寫 java proj2.myClass

我得到的java.lang.NoClassDefFoundError

如何運行程序正確使用類路徑?

回答

0

調用java proj2.myClass嘗試從MyClass類運行主方法(名應該是按照慣例大寫)在包proj2

如果myClass的package proj2;聲明必須有一個文件myClass.class子文件夾類路徑條目的proj2,在給定的例子應該是java -cp ".;proj2/antlr-3.5.jar" proj2.myClass,所以proj2.myClass可以發現從搜索.

如果您不需要antlr-3.5,您可以省略.

如果您的班級沒有聲明包,那麼它必須是java -cp "proj2;proj2/antlr-3.5.jar" myClass

您還應該避免將類文件和jar文件混合在同一個文件夾中,或者通過相同的類路徑條目訪問,但可以分開jar和classes子樹。

+0

謝謝!這幫助我把所有事情都弄清楚了 – Nick