Python脚本在调用子进程后未继续



我有一个python脚本,调用带有subprocess模块的java文件:

import subprocess
java_cmd = ['java', '-cp', 'bin/stuff/:lib/asm-all-3.3.jar:lib/jdom.jar',
      'ch.idsia.scenarios.Main']
subprocess.call(java_cmd, shell=False)
print "Hello world"

这是正确的,然后java文件等待python脚本继续并按照我的意愿连接套接字。但python脚本没有继续。为什么不呢?我知道它不会,因为print语句从不执行。

当我从Eclipse手动运行java文件,然后从命令行执行python脚本时,一切都会按预期运行。我也用subprocess.Popen()代替subprocess.call(),结果没有差异。

谢谢@KSFT;subprocess.call()在命令完成之前不会返回,但subprocess.Popen()会返回。所以我先用subprocess.Popen(),然后用time.sleep(0.5)打了电话。让python脚本等待0.5秒可以让java文件有足够的时间打开并初始化套接字连接。

subprocess.call()在运行的命令完成之前不会返回。您可以使用多线程同时运行其他程序。

最新更新