我通过以下方式从main方法调用批处理文件:
public static void main(String args[]){
Runtime rt=Runtime.getRuntime();
try {
Process pr=rt.exec("D:\\test1.bat");
pr.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
批处理文件的内容如下:
xcopy d:\a1 d:\a2
call C:\Java\jdk1.6.0_27\bin\java.exe -version >log1.txt 2>&1
执行时,文件夹a1中的文件被复制到文件夹a2,但是没有生成log1.txt。 但是,如果我双击此批处理文件,则会复制文件,并使用java版本生成log1.txt。
答案 0 :(得分:1)
当进行外部更改时,eclipse不会自动刷新文件系统 - 尝试选择项目,并且File =>刷新(F5)
Runtime.exec()的重载版本允许您将工作目录设置为第3个参数..
实施例
public static void main(String args[]) {
Runtime rt = Runtime.getRuntime();
try {
Process pr = rt.exec("D:\\test1.bat", null, new File("D:\\"));
pr.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}