使用exec调用

时间:2015-07-14 19:58:34

标签: java exec named-pipes

我尝试使用exec调用在Java中创建命名管道。我有这行代码

Process p = Runtime.getRuntime().exec("/bin/sh -c \"mkfifo ~/myFifo && tail -f ~/myFifo | csh -s\"");

但是当我在通话结束后查找~/myFifo时,它就不存在了。有什么理由不行吗?

我也试过没有/bin/sh -c位,但它也没有用。

修改

final String [] cmds = {"/bin/sh", "-c", "\"mkfifo ~/myFifo && tail -f ~/myFifo | csh -s\""};

Process p = Runtime.getRuntime().exec(cmds);

1 个答案:

答案 0 :(得分:1)

如果你写出第三个论点,你就会得到这个:

$ "mkfifo ~/myFifo && tail -f ~/myFifo | csh -s"
bash: mkfifo ~/myFifo && tail -f ~/myFifo | csh -s: No such file or directory

如果你试图在shell中运行它,你会发现它不起作用:

final String [] cmds = {"/bin/sh", "-c", "mkfifo ~/myFifo && tail -f ~/myFifo | csh -s"};

只需删除您添加的文字引号:

Process.getInputStream()

并记得阅读 $(document).ready(function() { var imgcnt = 3; var curimage = 1; imageinterval = setInterval(function() { var newimg; if (curimage == imgcnt) newimg = 1; else newimg = curimage + 1; $("#image" + curimage).fadeToggle(1000); $("#image" + newimg).fadeToggle(1000); curimage = newimg; }, 3000); });