Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java传递参数执行python脚本_Java_Python_Shell - Fatal编程技术网

从java传递参数执行python脚本

从java传递参数执行python脚本,java,python,shell,Java,Python,Shell,几天前我问过关于从java执行python脚本的问题。它部分地解决了我的问题。但现在,我无法传递任何参数并使该脚本执行任何操作 我的脚本必须接收XBee帧并通过串行端口发送。我在shell中测试了脚本,效果很好。因此,执行:sudo python script.py frame,将发送该帧 现在,我试着用java做同样的事情,但失败了。我的代码是: Process p; //System.out.println(packet.toString()); try{ StringBuffer

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


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

为什么这里需要管道?这不是您尝试使用shell时使用的。为什么不运行python脚本呢?命令
echo pass
只打印
passs
,然后由脚本处理。您只需执行脚本,并将word
传递到其STDIN中即可。谢谢您的评论。pass是成为root用户的密码。如何执行该行?您认为,让套接字监听python脚本并让它一直运行会更容易吗。通过这种方式,我可以从java发送数据,就像我通过internet发送数据一样……可能是