从Java代码运行.sh

时间:2015-06-27 12:33:28

标签: java shell unix

我试图从我的java代码运行.sh文件。我已经看到了类似的问题(How to run Unix shell script from Java code?)并尝试了那里写的答案。但是,我希望进程退出值为0(正常终止),而实际上我得到127.这是我的代码:

public int performATRs() throws IOException{

    String[] command = {"sh", "/ThematicAnalysis/flexiTerm/FlexiTerm.sh"};
    Process process = Runtime.getRuntime().exec(command);
    InputStream inputStream = process.getInputStream();
    InputStreamReader streamReader = new InputStreamReader(inputStream);
    BufferedReader bufReader = new BufferedReader(streamReader);
    try{
        process.waitFor();
        System.out.println("Waiting...");
        System.out.println("Returned Value :" + process.exitValue());
    }catch(InterruptedException e){
        System.out.println(e.getMessage());
    }
    while(bufReader.ready())
        System.out.println(bufReader.readLine());
    return process.exitValue();
} 

我尝试从我的java代码运行FlexiTerm.sh。它在我从终端运行它时工作。非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:1)

127表示无法执行/ThematicAnalysis/flexiTerm/FlexiTerm.sh,您应该仔细检查该脚本的路径是否正确。我怀疑它不是,因为Unix风格的系统通常不会有一个名为“ThematicAnalysis”的顶级目录。如果您在相对于Java程序工作目录的位置查找该脚本,则应删除前导斜杠。