网上都说了很多有关classpath问题的情况,这里就不说了.


说一下其他情况:

1.编译成功,运行失败,

Exception in thread "main" java.lang.NoClassDefFoundError:

这种情况是你可以看下是不是该类用了package, 例如 package test.TestJava

其中...src\test\TestJava.java这样的目录,你可以退回到src目录中再重新运行,其中运行的时候记得加上包名,并且分隔符是点号例如

..\src>  java test.TestJava

这样的话运行就可能成功,

可能的错误情况:

1.没有加包名,这样的话因为java解释器是根据当前目录(如果添加了.;  的classpath)开始为根目录然后再想后找的.你想一下如果你用了package

那么对于解释器只会认为这个类在...src\test\test\TestJava.java中,

但是如果你退回到上个目录,那么就会根据你当前目录来判定,这样就正确了.


2.classpath等配置错误:网上大把自己加


3...\src>  java test\TestJava吧点号变成斜杠.因为是用解释器所以要用点的形式不是斜杠文件形式


可能还有其他情况,不过我遇到的就是这种情况,其实在Thinking In Java中的第五章有讲Java解释器的路径查找情况