3

几天前我问过关于从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 身份运行它,因为它使用串行端口,如果没有,它对我说我没有权限。

你知道怎么做吗?当我运行脚本时,我试图用一些单词写一个文件,但什么也没发生,这让我觉得它运行不正常。

4

0 回答 0