这是因为,java找寻的的确是有次序的,它会按照classpath指定的次序查找,比如java -classpath /java/MyClasses ;/java/OtherClasses 那它自然就先找MyClass再找OtherClasses了。你这种情况,jdk先找当前目录找不到window这个类自然报错咯。

解决方案 »

  1.   

    这个跟ClassLoader的机制有关一个类寻找类,首先看看当前类的ClassLoader的ClassLoader是否加载了需要的类的
    如果没有则用自己来加载。所以classpath的优先级,首先是jvm的classpath,如java.lang等等,然后是ext的如javax.servlet等等,最后是application,如tomcat的。再最后才是你自己的lib目录
      

  2.   

    当前类中包含avi.Window,你的Window类的路径放得也有些问题呀。
    classpath中通常是先找到哪个用哪个,所以有前后顺序,特别是有些软件要求的标准包和你以前系统中的版本不一致的时候,他就会按你系统中以前的那个做为标准,结果不符合版本要求,就会报错了。