原因是jvm占用着文件  (你自己可以手动删除一下,如果删除不了,就是被占用了)

解决方案:在执行该方案前把垃圾回收一下,System.gc();

eg1;

File file =new File(new SystemParameterBeans().getSystemParameterValue("SBWJCFLJ")+"/gyscptp/"+equipementId+"/thumb/"+cptp);
                         System.gc();
                         file.delete();

eg2:(这种写法实在jsp中的调用java方法的写法)

该方法可以删除制定目录或者文件(及其子目录),运用了递归的方法
<%! public static  void deleteAll(File path) {
           System.gc();
     if (!path.exists())   //路径存在
     return;
     if (path.isFile()) {  //是文件
     path.delete();
     return;
     }
     File[] files = path.listFiles();//如果里面有目录会继续遍历该目录的
     for (int i = 0; i < files.length; i++) {
     deleteAll(files[i]);
     }
     path.delete(); 
     }
     %>

为什么一定要用递归:该业务的特殊性,需要重新遍历该方法