我有一个命令
cp -R Folder1/* Folder2/
或
rm -r /images/*.gif
我试图通过java运行一个示例程序是行不通的
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
return proc.waitFor();
我做错什么了?
最佳答案
当运行一个进程时,Java创建三个输出、退出代码、STDUT和STDRR。一个好的程序运行一个外部进程,将检查所有三个。
您正在等待进程终止,并返回退出代码。
一个简单的方法是“继承”stdout/stderr流:
ProcessBuilder pbuilder = new ProcessBuilder("cp", "-R", "Folder1/*", "Folder2/");
pbuilder.inheritIO();
Process proc = pbuilder.start();
return proc.waitFor();
你会更好地了解出了什么问题。
还要注意,我对命令使用了单独的字符串参数。这有助于确保参数直接传递到底层进程。