我有一个命令

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();

你会更好地了解出了什么问题。
还要注意,我对命令使用了单独的字符串参数。这有助于确保参数直接传递到底层进程。

10-06 11:26