从Java启动bash文件无法正常工作

时间:2017-11-02 14:09:21

标签: java linux bash shell process

在java文件中我创建了一个启动bash文件的函数。我尝试了不同的方法,但没有一个工作。我评论了向您展示的每种方法 我已经尝试过了什么。旁边是一个简短的描述,当我启动程序时会发生什么。

java文件:

try{

        //String[] cmd = new String[]{"/bin/sh", "send.sh"};
        //Process pr = Runtime.getRuntime().exec(cmd);  //nothing happens           
        //Process p = Runtime.getRuntime().exec("send.sh"); //File not found
        //Process p = Runtime.getRuntime().exec("bash send.sh"); //nothing happens

        // ProcessBuilder pb = new ProcessBuilder("bash","send.sh");
        // Process p = pb.start(); //nothing happens

        /*final ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", Klasse.class.getResource("./send.sh").getPath());
        processBuilder.redirectInput(Redirect.INHERIT);
        processBuilder.redirectOutput(Redirect.INHERIT);
        processBuilder.redirectError(Redirect.INHERIT);

        processBuilder.start().waitFor();*/
        //Error with the code in bash file

    }
    catch(Throwable t)
    {
        t.printStackTrace();
    }

bash文件:

#!/bin/bash
cd
cd rcswitch-pi
cd 433Utils/RPi_utils
sudo ./codesend 11782159

bash文件包含通过发送器发送代码(11782159)的方法。发送器将代码发送到插座。 BASH文件工作!当我手动启动它时它起作用(没有java。只需执行它) 出口改变了它的状态,所以确实有效。

bash文件位于程序文件的目录中。 我为bash文件准备了正确的名称。

现在我只想通过java启动那个bash文件。有人可以帮忙请求吗?它的 奇怪,因为这个问题似乎并不困难,但实际上我只是没有得到错误。

0 个答案:

没有答案