从java传递参数执行python脚本

时间:2013-05-09 19:05:22

标签: java python shell

我几天前问过从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身份运行它,因为它使用串口,​​如果没有,它告诉我我没有许可。

你知道怎么做吗?我在运行脚本时尝试用一些单词写一个文件,但没有任何事情发生,这让我觉得它运行不正常。

0 个答案:

没有答案