如何从Java执行Python脚本?

前端之家收集整理的这篇文章主要介绍了如何从Java执行Python脚本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以从 Java执行像ls或pwd这样的 Linux命令,但是不能执行 Python脚本.

这是我的代码

  1. Process p;
  2. try{
  3. System.out.println("SEND");
  4. String cmd = "/bash/bin -c echo password| python script.py '" + packet.toString() + "'";
  5. //System.out.println(cmd);
  6. p = Runtime.getRuntime().exec(cmd);
  7. BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
  8. String s = br.readLine();
  9. System.out.println(s);
  10. System.out.println("Sent");
  11. p.waitFor();
  12. p.destroy();
  13. } catch (Exception e) {}

什么都没发生.它达到了SEND,但它刚刚停止了…

我正在尝试执行一个需要root权限的脚本,因为它使用串行端口.另外,我必须传递一些带有一些参数(数据包)的字符串.

解决方法

您不能像您的示例中那样在Runtime.getRuntime().exec()中使用PIPE. PIPE是外壳的一部分.

你也可以做

>将命令放在一个shell脚本中,然后使用.exec()或
>你可以做类似以下的事情

  1. String[] cmd = {
  2. "/bin/bash","-c","echo password | python script.py '" + packet.toString() + "'"
  3. };
  4. Runtime.getRuntime().exec(cmd);

猜你在找的Java相关文章