【发布时间】:2013-04-20 18:17:29
【问题描述】:
Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt");
我正在使用 Java 运行此命令。该脚本正在运行,但它没有将其流重定向到文件。此外,文件out.txt 没有被创建。
如果我在 shell 上运行,这个脚本运行良好。
有什么想法吗?
【问题讨论】:
-
为什么是 & 符号?
-
它用于将输出流和错误流重定向到文件
-
您是否在系统中搜索过该文件?
-
1) 阅读runtime.exec info. page。实施所有链接的 Java World 文章中的建议。 2) 然后忽略它引用
exec并使用ProcessBuilder(String[])构造函数。 3) 我听说管道在 Java 进程中不起作用。 -
管道(和重定向)通常不会在 UNIX 上工作,因为它们是 shell 所做的事情。在这种情况下,正在执行 sh。
Runtime.exec的行为在很大程度上没有记录。
标签: java shell process runtime.exec