java - 从 Java 运行 Python 脚本

标签 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 脚本甚至没有运行。

最佳答案

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

所以,为了安全起见 - 建立一个评论,例如

 full-path-to-binary/python full-path-to-your-script/yourscript.py

您使用类 UNIX 操作系统时以及您编写脚本以在第一个语句中包含正确的 #!/path/to/python 语句时行,并且脚本具有 r+x 文件系统权限时,您可能不需要这样做。

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

关于java - 从 Java 运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433913/

相关文章:

java - log4j2 - Syslog appender 和 PatternLayout

java - Android SQLite - 新表 VS。新数据库

python - 如何避免读取 Tensorflow 中每个请求的图表

python - 如何在Python中获取少于所需数量的位置参数?

python - 使用 Visual Studio 进行 Scrapy 调试

python - 查找列表中连续增加的元素的数量

python - 将字典导出到 json 文件

python - Pandas 将 1 列值与另一个数据框列进行比较,找到匹配的行

java - 如何在接口(interface)中使用 super 来默认实现

用于网络驱动程序的 JavaScript