我有(在java中),
rt.exec("qq.exe -i ..(some other parameters) > qq.log");//*1
当我在终端运行 qq.exe -i ..(一些其他参数)> qq.log 它工作正常并保持 qq.log 文件正确。
但是使用 rt.exec (*1) 不起作用。“ > qq.log”部分导致问题。当我删除该部分 rt.exec (*1) 有效但这次我不能有 qq.log 文件。
是什么导致了这个问题,有什么解决办法吗?
我有(在java中),
rt.exec("qq.exe -i ..(some other parameters) > qq.log");//*1
当我在终端运行 qq.exe -i ..(一些其他参数)> qq.log 它工作正常并保持 qq.log 文件正确。
但是使用 rt.exec (*1) 不起作用。“ > qq.log”部分导致问题。当我删除该部分 rt.exec (*1) 有效但这次我不能有 qq.log 文件。
是什么导致了这个问题,有什么解决办法吗?
Java 7 添加了 ProcesBuilder.Redirect 类,允许将输入/输出/错误流重定向到文件/从文件重定向。它可以这样使用:
ProcessBuilder builder = new ProcessBuilder("cat", "/proc/meminfo");
// Append all errors from process to log file:
builder.redirectError(Redirect.appendTo(new File("/tmp/my.log")));
Process process = builder.start();
使用相应的方法,您可以重定向输入和输出。完整的例子在这里:在 Java 7 中运行外部进程。