2013-06-30 35 views
0

今天我試着通過命令提示符來編輯我的消息來源:爪哇 - NoClassDefFoundError的運行

PS ...\JavaDev\Prog> javac -classpath <libs> -d . -sourcepath src src/com/negi/prog/Prog.java 

他們成功編譯。

但是當我嘗試運行它,它會產生一個錯誤:

 
PS ...\JavaDev\Prog> java -classpath com.negi.prog.Prog 

Exception in thread "main" java.lang.NoClassDefFoundError: com/negi/prog/Prog 
Caused by: java.lang.ClassNotFoundException: com.negi.prog.Prog 

我該如何解決呢?

回答

2

的類在-classpath必須由:

PS ...\JavaDev\Prog> java -classpath "<libs>:com.negi.prog.Prog" 

分開,以完成答案,不同的操作系統有不同的類路徑分隔符。您可以通過檢索java.class.path屬性的值來檢查分隔符。

+1

其實不同的操作系統有不同的類路徑seporators從而[系統](在'java.class.path'財產http://docs.oracle.com/javase/tutorial/essential/environment /sysprop.html)。 – selig

+0

但是爲什麼不是';'? –

+0

由於他在Windows上(通過使用反斜槓代替正斜槓來判斷),他需要使用';'。 [相關的](http://stackoverflow.com/questions/4528438/classpath-does-not-work-under-linux)。 – Brian

1

您需要確保當前目錄是在classpath即

PS ...\JavaDev\Prog> java -classpath <libs>:. com.negi.prog.Prog 
2

運行時,默認情況下。 (當前路徑)包含在類路徑中,但是如果指定-classpath或-cp,則會覆蓋該路徑。包括。在classpath:

java -classpath <libs>:. com.negi.prog.Prog