我在执行这个程序时,为什么会在main()中出现C:\Documents and Settings\Joe\javalessons>java Dir.java
                  Exception in thread "main" java.lang.NoClassDefFoundError: Dir/java
这样的错误呢?还望指教??谢谢~
import java.io.*;class DirFilter implements FilenameFilter{

public boolean accept(File dir,String name){

return new File(dir,name).isDirectory();

}

public static void vist(File f){
if (f.isDirectory())
{
String[] files = f.list(new DirFilter());
  System.out.println(files.length + "dir(s):");
    for(int i=0;i<files.length;i++)
     System.out.println("\t" + files[i]);
    
}
  else if(f.isFile())
    f.getPath();
    System.out.println(f.getPath());
  
  
   }

public static void main(String[] args){

     File dir = new File(args[0]);//C:\Documents and Settings\Joe\javalessons>java Dir.java
                                                        //Exception in thread "main" java.lang.NoClassDefFoundError:    Dir/java
                     DirFilter.vist(dir);
               }
}

解决方案 »

  1.   

    要先 javac Dir.java
    如果编译成功,再 java Dir
      

  2.   

    应该是你的classpath没有设置对!设置一下你的classpath吧!!!
      

  3.   

    sor没看清, 编译成功后 java DirFilter
      

  4.   

    应该是classpath没有设置对,请设置一下classpaht吧!
      

  5.   

    既然编译通过了,那就 直接 java DirFilter 不要加 .java.
      

  6.   

    记住 不是java Dir.java 看清楚! 是java  DirFilter
      

  7.   

    哦,那是我打错了不好意思.我用是java DirFilter  还是有那个错误.你帮我编译一下,看你那能通过吗?
    谢谢...
      

  8.   

    先将文件名改为DirFilter.java
    再javac DirFilter.java编译
    最后java DirFilter执行
      

  9.   

    如果你想编译执行一个类,那么
    文件名应该和包含public static void main的类同名
      

  10.   

    用java  DirFilter  "."  运行File dir = new File(args[0]); 你这里如果不在命令行赋值给args[0]的话,会脚标越界 !
      

  11.   

    不用改名 !  除非你的类是public的.
      

  12.   

    interhanchi(路曼曼其修远兮,吾将上下而求索.)
     谢谢...
        对了
      

  13.   

    import java.io.*;class Dir{
     public static void visit(File f) { 
       
             System.out.println(f);
            
          }      public static void walk(File f) { 
              visit(f); 
              if (f.isDirectory()) { 
                 String list[] = f.list(); 
                 for (int i = 0; i < list.length; i++) 
                     walk(new File(f, list[i])); 
              } 
         } 

      public static void main(String[] args){

       File src = new File(args[0]);
       walk(src);
      
    }

    }我编这样一个程序,就只是把指定的根目录下的所有子目录和文件打出来.就没有更多的信息了..
      

  14.   

    呵呵,sorry
    没有看你的程序,就是瞄了一眼
    很自然的就想到了文件名的问题
    呵呵,不好意思