gpt4 book ai didi

java - 使用 Java 将命令行结果写入文件

转载 作者:行者123 更新时间:2023-11-29 05:41:13 25 4
gpt4 key购买 nike

我尝试从 Java 代码运行命令行。

public void executeVcluto() throws IOException, InterruptedException {
String command = "cmd /c C:\\Users\\User\\Downloads\\program.exe C:\\Users\\User\\Downloads\\file.txt 5 >> C:\\Users\\User\\Downloads\\result.txt";
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
if (process.exitValue() == 0) {
System.out.println("Command exit successfully");
} else {
System.out.println("Command failed");
}

}

但是,没有创建应该写入输出结果的文件result.txt。当我在 Windows 上从 cmd 执行此命令时,将创建文件并将结果写入其中。我收到命令退出成功消息。有人可以帮助我吗?

最佳答案

输出重定向是shell特性,java进程不理解。

一些其他的选择是1. 使用以上行创建一个批处理文件并使用 ProcessBuilder/Runtime 调用它2. 使用 ProcessBuilder 并使用输出流重定向输出。 示例(它适用于 shell,也适用于批处理文件)在这里

ProcessBuilder builder = new     ProcessBuilder("cmd", "/c", "C:\\Users\\User\\Downloads\\program.exe", "C:\\Users\\User\\Downloads\\file.txt" , "5");
builder.redirectOutput(new File("C:\\Users\\User\\Downloads\\result.txt"));
builder.redirectError(new File("C:\\Users\\User\\Downloads\\resulterr.txt"));

Process p = builder.start(); // throws IOException

(以上内容来自 Runtime's exec() method is not redirecting the output )

关于java - 使用 Java 将命令行结果写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508411/

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