2013-06-30 32 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