在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文件。有人可以帮忙请求吗?它的 奇怪,因为这个问题似乎并不困难,但实际上我只是没有得到错误。