我几天前问过从java执行python脚本。它部分解决了我的问题。但是现在,我无法传递任何参数并使该脚本可以执行任何操作。
我的脚本必须接收XBee帧并通过串口发送。我在shell中测试了脚本,它工作正常。所以,执行:sudo python script.py frame
,帧被发送。
现在,我尝试用java做同样的事情,但它失败了。我的代码是:
Process p;
//System.out.println(packet.toString());
try{
StringBuffer p1 = new StringBuffer();
String[] cmd = {"/bin/bash", "-c", "echo pass | python script.py b'", packet.toString(), "'"};
p = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = br.readLine();
p.waitFor();
p.destroy();
} catch (Exception e) {}
我必须在争论之前添加b',然后在其之后添加另一个。 packet是StringBuffer所以我用toString方法获取String。
我需要以root身份运行它,因为它使用串口,如果没有,它告诉我我没有许可。
你知道怎么做吗?我在运行脚本时尝试用一些单词写一个文件,但没有任何事情发生,这让我觉得它运行不正常。