本帖最后由 hanyu1222 于 2010-07-09 16:19:02 编辑

解决方案 »

  1.   

    for(int i=0;i<1;)
    {
    while(!file.exist()){
      Runtime.getRuntime().exec("cmd /c " + anotherFile);
      
      i++;
      break;
    } }
      

  2.   

    只有一个文件 为什么不用ifelse呢
      

  3.   

    File file=new File("文件生成的路径");
    System.out.println(file.exists());
      

  4.   

    只有一个文件且只判断是否存在,为什么需要用while呢?直接if(file。exists())不行吗?
      

  5.   

    File file = new File("a.txt");
    if(!file.exists()) {
    //create new file
    }
      

  6.   

    可能我没把问题说清楚啦我是要等那个文件生成之后再继续执行下去啦if else 的话if条件不成立就执行else啦,除非用递归但这样貌似和用while效果一样啊。
      

  7.   

    这样:String filePaht = "yourFilePath";
    File file = new File(filePaht );
    // 如果当前文件存在,或者成功创建。
    // 不需要调用 cmd 来创建路径。使用  file.createNewFile() 可以保证文件创建后,才继续逻辑
    if(file.exists() || file.createNewFile()){
         // do sth
    }
      

  8.   

    我有个感觉,楼主的程序是不是进入死循环了,要不然你所说的
    “因为是调用cmd的,这样反复执行的话,可能比较耗内存,很容易当掉的”
    是从何而来呢》?
    检查Runtime.getRuntime().exec("cmd /c " + anotherFile);生成的文件,是不是和!file.exist()判断的文件是同一个名字,同一路径。
      

  9.   

    楼主这个问题 我曾经也考虑过 我们是用cmd调用一个bat文件,想当bat文件执行成功后再向下执行程序,因为java调用bat时不考虑,bat是否执行完毕,因此我们想当bat执行成功后,在指定的路径下生成一个txt文件,当java读到存在这个文件的时候再向下执行。
      

  10.   

    File f=new File(new File("d:\\bisu_bi\\etl\\bat"),"bat_status.txt"); // 检查文件是否存在while(!f.exists()){//当文件存在的时候,跳出循环
    Thread.sleep(2); // 睡两秒
    }思路是这样的:指定好文件路径,用while进行死循环判断,当程序不存在是,进入循环,当文件存在就跳出循环程序向下执行