gpt4 book ai didi

java - 使用运行时 Java 在 linux 中执行命令不工作返回代码不是 0

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:44 25 4
gpt4 key购买 nike

我有这样的命令

cp -R Folder1/* Folder2/

rm -r /images/*.gif

我尝试通过 Java 运行示例程序,但它不起作用

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
return proc.waitFor();

我做错了什么?

最佳答案

当您运行一个进程时,Java 会创建三个输出:退出代码、STDOUT 和 STDERR。一个运行外部进程的好程序会检查所有这三个。

您只是在等待进程终止,并返回退出代码。

查看正在发生的事情的一种简单方法是“继承”STDOUT/STDERR 流 using a ProcessBuilder :

ProcessBuilder pbuilder = new ProcessBuilder("cp", "-R", "Folder1/*", "Folder2/");
pbuilder.inheritIO();
Process proc = pbuilder.start();
return proc.waitFor();

您会更好地了解哪里出了问题。

另请注意,我为命令使用了单独的字符串参数。这有助于确保将参数正确传递到基础流程。

关于java - 使用运行时 Java 在 linux 中执行命令不工作返回代码不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com