来自Java的Linux命令行指令

时间:2014-10-29 15:03:51

标签: java linux bash command-line binaryfiles

我很难弄清楚如何通过Java传递命令行选项。 我的Java代码需要调用二进制文件,而后者又会运行一些指令。 我需要传递的命令是

./program 100 -r 1

现在无法通过选项-r 1。 在我的Java代码中,如果我运行:

  command=new String [2];
  command[0] = ".//program";
  command[1] = " "+String.valueOf(nScen);
  Process p = Runtime.getRuntime().exec(command);

一切正常,程序运行正常。 nScen是一个整数。 但是,如果我尝试

  command=new String [3];
  command[0] = ".//program";
  command[1] = " "+String.valueOf(nScen);
  command[2] = " -r 1";
  Process p = Runtime.getRuntime().exec(command);

  command=new String [2];
  command[0] = ".//program";
  command[1] = " "+String.valueOf(nScen)+" -r 1";
  Process p = Runtime.getRuntime().exec(command);

程序无法运行。我尝试过使用.concat而不是+来合并其他内容。 这样做的正确方法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

Process proc = Runtime.getRuntime().exec("./program  " + nScen + " -r 1");
int exitVal = proc.waitFor();

你还需要捕捉异常。