我写了个批处理,把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文件夹下问下各位怎么回事
我写了个批处理,把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文件夹下问下各位怎么回事
你的.bat文件里面,没有CD 到你的jacob-1.16-M2-x64.dll 所在的文件夹下。。你直接掉到.bat文件,他处于你的project目录下,当然就是把你当前project的配置文件拷过去了啊。你应该在.bat中加上: cd xxxx(jacob-1.16-M2-x64.dll所在目录)
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();
}
}
你这样是copy了你.bat文件所在目录的下的所有文件到 system32下面去了