java可以运行本地文件,同时也可以运行bat文件,对于一般的bat文件没问题,但是,如果bat文件带命令参数,如 move,则会报错“找不到指定文件”,解决方法:
原 a.bat 文件为:
move aa.txt ../
1,先修改bat文件。
a.bat:
cd %1
move aa.txt %1
加上参数和目标
2,java代码:
String path = "c:/test/aa.bat";
String path2 = "c:/test";
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "call", "/"" + path + "/"", "/"" + path2 + "/"");
BufferedReader br = new BufferedReader(new InputStreamReader(builder.start().getInputStream()));
String line;
while ((line=br.readLine())!=null) {
System.out.println(line);
}
运行成功。
ps:一般运行exe的方法:
Process process = Runtime.getRuntime().exec(path);
InputStream stderr = process.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println(line);
int exitVal = process.waitFor();
process.waitFor();