从JVM运行bash脚本
问题描述:
我无法从Java运行简单的bash脚本。具体做法是:从JVM运行bash脚本
...
try{
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
pb.directory(new File(dir));
Process shell = pb.start();
int exitVal = shell.waitFor();
... 其中“命令”的绝对路径的bash脚本,是由所有与“目录”可执行文件的工作目录。
当我运行我的程序,我得到一个退出代码127(“找不到命令”)。我试过使用Java运行时类和process.exec方法,但都没有为我工作。有什么建议么?
答
如果“command”是一个bash脚本,那么不要将“/ bin/bash”(以及错误的“-c”像你在做的那样)传给ProcessBuilder,只要确保该命令是可执行的(chmod + x命令),第一行是#!/bin/bash
,然后将完整路径传递给ProcessBuilder。
答
否-c。这意味着脚本是-c的参数。你传递给它一个路径名,并且你不使用-c。
谢谢!得到它的工作 – akobre01 2010-02-13 20:31:47