替代在Ubuntu中打印大于(>)的符号

时间:2014-08-24 12:19:10

标签: java terminal ubuntu-13.04

可能这个问题太容易了,但我花了很多时间,但我无法理解。我正在尝试执行echo命令,我试图在文本文件中附加一些数据。在终端中运行时一切正常,但当我尝试通过Runtime.getRuntime().exec("echo my text >> file.txt")运行时,则>>不起作用。

有没有办法提供代码或其他东西,以便此命令可以工作?我试过>,但它对我不起作用。

1 个答案:

答案 0 :(得分:0)

问题是:在哪个shell中应该执行echo命令? Runtime.exec可以获得cmdArray。 http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec%28java.lang.String[],%20java.lang.String[]%29

import java.io.*;

class RuntimeExecLinux {
  public static void main(String[] args){
      try {
        // Execute a command with arguments
        String[] cmd = new String[]{"/bin/bash", "-c", "echo 'my text from java' >> file.txt"};
        Process child = Runtime.getRuntime().exec(cmd);

        cmd = new String[]{"/bin/bash", "-c", "cat file.txt"};
        child = Runtime.getRuntime().exec(cmd);

        // Get the input stream and read from it
        InputStream in = child.getInputStream();
        int c;
        while ((c = in.read()) != -1) {
            System.out.print((char)c);
        }
        in.close();

      } catch (IOException e) {
        e.printStackTrace();
      }
  }
}

问候

阿克塞尔