public static void loadfile(String path) throws Exception{
    //参数,path = "c:/sun/flow/en/bin/startgg.bat"    //获得目录
    File libDirectory = new File(path);
    if(libDirectory.isDirectory() ){
      //列出所有的文件
      String[] fileNames = libDirectory.list() ;
      for(int i=0;i<fileNames.length;i++){
        String postfix = fileNames[i];
        if(postfix.equalsIgnoreCase("startgg.bat"))
        {
          String rdFile = path + fileNames[i];
          Runtime.getRuntime().exec(rdFile);          //输出被载入的JAR文件
          System.out.println("载入" + jarFile ) ;
        }
      }
    }
  }
这样吗?

解决方案 »

  1.   

    public static void loadfile(String path) throws Exception{
        //参数,path = "c:/sun/flow/en/bin/startgg.bat"    //获得目录
        File libDirectory = new File(path);
        if(libDirectory.isDirectory() ){
          //列出所有的文件
          String[] fileNames = libDirectory.list() ;
          for(int i=0;i<fileNames.length;i++){
            String postfix = fileNames[i];
            if(postfix.equalsIgnoreCase("startgg.bat"))
            {
              String rdFile = path + fileNames[i];
              Runtime.getRuntime().exec(rdFile);          //输出被载入的file文件
              System.out.println("载入" + rdFile ) ;
            }
          }
        }
      }
    这样吗?
      

  2.   

    public static void loadfile(String path) throws Exception{
        //参数,path = "c:/sun/flow/en/bin/"    //获得目录
        File libDirectory = new File(path);
        if(libDirectory.isDirectory() ){
          //列出所有的文件
          String[] fileNames = libDirectory.list() ;
          for(int i=0;i<fileNames.length;i++){
            String postfix = fileNames[i];
            if(postfix.equalsIgnoreCase("startgg.bat"))
            {
              String rdFile = path + fileNames[i];
              Runtime.getRuntime().exec(rdFile);          //输出被载入的file文件
              System.out.println("载入" + rdFile ) ;
            }
          }
        }
      }
    这样吗?
      

  3.   

    可是那个startgg.bat没有运行啊。
      

  4.   

    我是这样想的,你的path参数应该这样c:/sun/flow/en/bin
    连接的时候再加上一个斜杠你先在cmd里面执行试试,就用这个绝对路径c:/sun/flow/en/bin/startgg.bat
      

  5.   

    我改了一下
    path = "c:/sun/flow/en/bin";
    String jarFile = path + "/" + fileNames[i];
    还是没有运行
    但是在cmd里输入c:/sun/flow/en/bin/startgg.bat
    是可以的。
      

  6.   

    不会吧!
    你在Runtime.getRuntime().exec(rdFile);之前打印rdFile看看
      

  7.   

    载入c:/sun/flow/en/bin/startgg.bat
    有打印语句啊
    我在cmd里就是照着打印出来的语句输的!
      

  8.   

    我试了了一下WINRAR.EXE是可以的
    是不是和后缀是.bat有关系?
      

  9.   

    没有出异常
    就是如果事.bat就没反应
    .exe是可以的
    我刚刚试了一下.PDF
    报了个
    fileNames[20]: MSSQL2005_ORACLE10g_compare.pdfjava.io.IOException: CreateProcess: d:/books/MSSQL2005_ORACLE10g_compare.pdf error=193
      

  10.   

    如果你在d:\batfile\目录下有个a.bat批处理文件,用以下方式:
    Runtime rn = Runtime.getRuntime();
    Process ps = rn.exec("cmd.exe /C start a.bat",null,new File("D:\\batfile\\"));