几天前我问过关于从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' 并在其后添加另一个 '。数据包是 StringBuffer 所以我用 toString 方法得到了字符串。
我需要以 root 身份运行它,因为它使用串行端口,如果没有,它对我说我没有权限。
你知道怎么做吗?当我运行脚本时,我试图用一些单词写一个文件,但什么也没发生,这让我觉得它运行不正常。