2014-10-06 69 views
2

我试图在java中为linux/unix os执行awk命令,但事情是当我执行命令时,它没有显示任何错误it.But执行后没有输出,它需要分数第二个执行我不知道这个问题,请帮助。在java中执行awk命令

代码

process p =new process(): 
yes = "awk '{print $1}' /root/Desktop/net/net.zone >> /root/Desktop/net/net.txt"; 
p = Runtime.getRuntime().exec(yes); 

谢谢您的帮助

回答

4

正常启动命令行处理与Java是不容易的。我建议你使用commons-exec而不是自己尝试。

现在,你必须在命令行两两件事需要特殊处理:

  • 周围的AWK脚本单引号。当您通过addArgument将每个参数作为单个字符串传递给CommandLine时,不再需要引号。
  • 输出重定向。

    由于您创建了一个子进程,因此您可以控制stdin和stout。这意味着您需要打开目标文件以便在Java中追加,将其包装在PumpStreamHandler中并将其传递给DefaultExecutor。看到这个问题的详细信息:Process output from apache-commons exec

+0

先生,我是新来的Java不能明白你说的u能请详细 – 2014-10-06 07:56:52

+0

请看看我联系,并通过实例的工作文件的内容。如果您不知道如何将库添加到项目中,那么IDE的文档应该解释这一点。 – 2014-10-06 10:21:00

+0

@vigneshkalai因为您是Java新手,我建议您在Java论坛中询问如何执行您正在尝试执行的任何操作。调用awk并不是正确的方法。 – 2014-10-06 16:17:02