当前位置: 首页 > 面试题库 >

如何从Java执行Python脚本?

马梓
2023-03-14
问题内容

我能运行Linux命令状lspwd从Java没有问题,但不能得到执行的Python脚本。

这是我的代码:

Process p;
try{
    System.out.println("SEND");
    String cmd = "/bash/bin -c echo password| python script.py '" + packet.toString() + "'";
    //System.out.println(cmd);
    p = Runtime.getRuntime().exec(cmd); 
    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String s = br.readLine(); 
    System.out.println(s);
    System.out.println("Sent");
    p.waitFor();
    p.destroy();
} catch (Exception e) {}

什么都没有发生。它到达了SEND,但之后就停止了…

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


问题答案:

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

你可以做

  • 将命令放入shell脚本并使用.exec()或执行该shell脚本
  • 您可以执行类似以下操作
String[] cmd = {
    "/bin/bash",
    "-c",
    "echo password | python script.py '" + packet.toString() + "'"
};
Runtime.getRuntime().exec(cmd);


 类似资料:
  • 问题内容: 我有一个通过URL执行的php脚本。(例如,www.something.com / myscript?param = xy) 在浏览器中执行此脚本时,它会给出编码结果,即负数或正数。 我想从Java代码(J2EE)执行此脚本并将结果存储在某个对象中。 我正在尝试使用它。我建立了连接,但无法获取结果。我不确定是否完全执行脚本。 问题答案: 该摘录来自官方Java教程(http://jav

  • 问题内容: 我需要从Django Shell执行Python脚本。我试过了: 但这没有用。只是在等我写东西。 问题答案: 该<<部分有误,请<改用: 你也可以这样做: 对于python3,你需要使用

  • 我需要从Django shell执行一个Python脚本。我试过: 但是没有成功。它只是在等我写些什么。

  • 问题内容: 我在树莓派上有一个带有2个按钮(打开和关闭)的PHP网页,“打开”按钮重定向到On.php,“关闭”按钮重定向到Off.php在“ / usr / lib / cgi-bin”中,我有一个python脚本我想执行(script.py),我可以通过在终端上键入以下内容来完美地执行它 如果我从终端执行此操作,它将起作用。 问题是我的“ / var / www”文件夹中的PHP文件(On.p

  • 您好,我正在尝试在apache2服务器上运行Raspberry Pi,使用PHP中的pyautogui库执行Python脚本。从命令行执行Python脚本时,我没有遇到任何问题,但通过PHP的“shell_exec”执行时,我收到以下错误消息: 错误登录apache2: 回溯(最近一次调用):文件“/home/pi/Projects/Python/wakeUp.py”,第2行,在导入pyautog

  • 问题内容: 我需要从我的Python脚本执行该脚本。 可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。 应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()? 谢谢, 编辑: Python运行时的错误仅是这一行。 问题答案: 要执行外部程序,请执行以下操作: 是的,假设您