从Java运行Python脚本

时间:2017-08-01 09:23:49

标签: java python python-2.7

我想从我的Java应用程序运行Python2脚本,但它不会运行。

我没有得到任何堆栈或错误 - 它只是没有运行!

我试过了:

public void execPython2(String file, String parm0) {
    try {
        Process p = new ProcessBuilder("python2", file, parm0).start();
    } catch (Exception e) {
    }
}

以下是方法调用:

public String getMAC(String IP_Addr) {
    execPython2("getMacAddr.py", IP_Addr);    
    try {
        Thread.sleep(500);
    } catch (Exception e) {
    }

    String macAddr[] = readFromFile("lastMac.log", false);    
    try {
        Thread.sleep(500);
    } catch (Exception e) {
    }

    return macAddr[0];
}

python2脚本将创建一个" lastMac.log"文件。

起初我认为python脚本不会完成,我只需要等到它完成但我猜Python脚本甚至没有运行。

1 个答案:

答案 0 :(得分:3)

Python是一种脚本语言 - 需要执行解释器。

所以,为了安全起见 - 建立一个像

这样的评论
 full-path-to-binary/python full-path-to-your-script/yourscript.py

使用类似unix的操作系统 时,你正在编写脚本以在其第一个包含正确的#!/ path / to / python语句如果脚本具有r + x文件系统权限,则可能不需要执行此操作。

下一步:您的代码忽略任何异常。请考虑检查错误消息而不是忽略它们。