1
2
首先,值得注意的是,您可以通过避免外部过程和使用Java来进行压缩来简化这一过程:
这具有完全多平台的额外优势。不需要/usr/bin/gzip,不需要在Windows上使用Unix工具。它不会实现
对于其他命令(或如果
在shell(如bash)中运行命令时,shell会截取
实际上导致shell运行
在这过程中,gzip进程不知道其输入来自何处,也不知道其输出将流向何处。它只是从自己的标准输入中读取数据,并写入到自己的标准输出中。
当您直接调用一个程序时,您将绕过shell,因此没有对
这意味着您正在使用一个选项和四个文件参数调用gzip,这将导致gzip首先查找一个文件,该文件的名称为一个字符长,文件的字面名称为
因此,如您所见,UNIX命令对重定向一无所知。这个
但是,可以使用ProcessBuilder模拟重定向:
对继承()的调用将导致外部进程的标准错误(即,任何错误消息)出现在Java程序的标准错误上。如果没有这一点,您将无法知道程序失败的原因。(如果我们没有重新定向标准输入和标准输出,它也可以这样做。) |
John Doe · 取消eclipse插件作业 6 年前 |
mahmood · 使用processbuilder加载所有环境变量 7 年前 |
Ariishiia · 当用户关闭计算器时,如何打印消息? 8 年前 |
Jbeat · Mac打开一个新终端,并在JAVA中使用参数运行脚本 8 年前 |
Vadim · Java子进程到控制台的额外输出 8 年前 |
Val · 使用带有超时的scala.sys.prrocess 9 年前 |
Simiil · 在进程启动后更改ProcessBuilder的环境变量 11 年前 |