从Java程序中运行bash命令

时间:2013-05-29 22:31:11

标签: java bash

考虑一段Java代码:

import java.io.IOException;
public class Demo{
          public static void main(String []args) throws IOException{
                   ...
                   String abc="i am here";
                   System.out.println(abc);
 }

}

我想要运行 - 回声“这对于文件来说很糟糕”>> file1.txt - 紧跟在System.out.println()行之后,假设file1.txt在同一目录中。

2 个答案:

答案 0 :(得分:2)

ProcessBuilder类是更现代的版本。

import static java.lang.ProcessBuilder.Redirect.appendTo;

ProcessBuilder pb = new ProcessBuilder("/bin/echo", "THIS IS STUFF FOR THE FILE");
pb.redirectOutput(appendTo(new File("file1.txt")));
Process p = pb.start();

请注意,这会直接调用/bin/echo而不是让bash查看PATH。这更安全,因为没有机会被黑客echo。此外,由于这不使用bash,因此Java用于重定向输出。

答案 1 :(得分:0)

使用Runtime.getRuntime()。exec()命令,如下所示:

Runtime.getRuntime().exec('echo "THIS IS STUFF FOR THE FILE!" > file1.txt');

可以阅读文档here

如果它不起作用或您发现该命令很方便并且想要了解更多信息,请自己帮忙并阅读this。它会为你节省汗水。