热门

最新

红包

立Flag

投票

同城

我的

发布
as4589sd
阿啄debugIT
6 年前
trueas4589sd

不要从ProcessBuilder.start()启动您的进程,不要试图搞乱Java中的流重定向/消费,使用ProcessBuilder.start(),将启动一个吞噬所有输入/输出流的小shell脚本。
像这样的东西:
#!/bin/bash

nohup $1 >/dev/null 2>error.log &

那就是:如果你不关心stdout,并且仍然将stderr记录到文件中(这里是error.log)。
如果您甚至不关心stderr,只需将其重定向到stdout:
#!/bin/bash
nohup $1 >/dev/null 2>1 &
若用Java调用那个小脚本,将它作为一个参数给你想要运行的进程的名称。 如果在Linux上运行,将stdout和stderr重定向到/dev/null的进程,仍然产生任何东西。

采用并发调用缓存输入输出流和缓存错误输出流,及回调函数来执行系统命令的封装类ShellExecUtil,及思考如何编写一个完美的工具类?

CSDN App 扫码分享
分享
3
2
打赏
  • 复制链接
  • 举报
下一条:
我真的服了,我C语言考试居然考了零分。天哪!真的没有办法了吗?搞得我真的不想学。但是又没办法。
立即登录