使用bin / bash的进程exec在JAVA中不起作用

时间:2013-04-10 10:55:03

标签: java process exec

我正在尝试在JAVA中执行以下操作,但它不适用于我:文件opt为空。 程序:RNAfold计算结构:从文件读取:“seq”并写入文件“opt”结构。 (当我从终端运行命令时,它正在完成工作)

**程序创建文件:seq,opt

Runtime rt = Runtime.getRuntime();
Process pr1;
try {
   command = "home/ViennaRNA-2.0.7/Progs/RNAfold -T "+Double.toString(tempature)+" --noLP <seq> opt";

   pr1 = rt.exec(new String[] { "/bin/sh", "-c",command});

.............

有人看到代码有问题吗?

1 个答案:

答案 0 :(得分:0)

您是否正在检查错误流并退出代码?

stderr = pr1.getErrorStream (); 
brCleanUp = new BufferedReader (new InputStreamReader (stderr));
while ((line = brCleanUp.readLine ()) != null) {
  System.out.println ("[Stderr] " + line);
}

System.out.println ("Exit code: " + process.exitValue());

另外,检查路径是否正确,并尽可能指定完整路径。没有前导斜杠的“home / ViennaRNA-2.0.7 / Progs / RNAfold”看起来很奇怪,如果您当前的目录不符合预期,可能会出错。