我写了个批处理,把jacob-1.16-M2-x64.dll和jacob-1.16-M2-x86.dll复制到system32文件夹下手动运行reg.bat可以复制到system32目录下,用java就不行了,上代码运行结果,并没有把jacob-1.16-M2-x64.dll和jacob-1.16-M2-x86.dll复制到system32文件夹下问下各位怎么回事

解决方案 »

  1.   

    我晕,
    你的.bat文件里面,没有CD 到你的jacob-1.16-M2-x64.dll 所在的文件夹下。。你直接掉到.bat文件,他处于你的project目录下,当然就是把你当前project的配置文件拷过去了啊。你应该在.bat中加上:   cd xxxx(jacob-1.16-M2-x64.dll所在目录)
      

  2.   

    或者是copy 目录/*.* c:/xxx/xxxx
      

  3.   

    copy *.* "%Systemroot%\System32\"
      

  4.   

    这样的结果貌似是调用了你目前的java执行文件位置的目录
      

  5.   

    晕哦,有空贴截图没空把代码粘上,还在安装datastage可卡死了....
    public static void main(String[] args) {
        try { 
         /**
          * bat内容:
          *           copy d:\test\*.txt  d:\test11
          */
          //一开始我使用这种方式,复制失败,
          //但是bat内容为 copy *.* "%Systemroot%\System32"  的时候复制了2个.path文件,目标文件没有复制
          //String file = "E:/workspace/runbat/test.bat"; 
          //runbat(file); 
        
         //使用这个方式复制成功,目录是我自己建的,为了运行完bat关闭窗口我在bat中添加了 exit
         //中午路径测试过也是可以的
         String bat = "cmd /c start E:/workspace/runbat/test.bat"; 
        runbat(bat); 
        } catch (Exception e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
        } 
    }

    public static void runbat(String batName){
    try{
    Process ps = Runtime.getRuntime().exec(batName);
    InputStream is = ps.getInputStream();
    int c;
    while((c = is.read()) != -1){
    System.out.println(c);
    }
    is.close();
    ps.waitFor();
    }catch(Exception e){
    e.printStackTrace();
    }

    }
      

  6.   


     你这样是copy了你.bat文件所在目录的下的所有文件到 system32下面去了
      

  7.   

    看了别人的回复,你的目录有问题,bat中的当前目录可以用 %cd%,你没有指定从哪个目录复制,而你用java调用和你手动执行时 默认的路径是不一样的,所以,其实是复制了,比如我说这里出现的2个.classpath的文件,这应该是用java运行是默认路径下面的文件,所以你要指定从哪个目录复制就可以了