我在Windows命令提示符中使用javaw.exe,它在生成我的Swing java程序后立即返回。
但是如果我使用Python的subprocess.call()来做同样的事情,它就会挂起。
import subprocess
retval = subprocess.call(['javaw.exe','-jar','myjar.jar',arg1,arg2])我做错了什么,为什么会有这种区别?
发布于 2014-08-18 22:52:17
subprocess.call将等待进程(javaw)完成,就像它在文档中说的:
运行args描述的命令。等待命令完成,然后返回返回代码属性。
您可能应该使用subprocess.Popen代替。
查看取代os.spawn家族的文档
pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg")
==>
pid = Popen(["/bin/mycmd", "myarg"]).pid在你的例子中,这可能是
pid = subprocess.Popen(["javaw.exe", "-jar", "myjar.jar", arg1, arg2])根据您的心情和需求,可能调整为获得javaw.exe或shell=True的绝对路径。
https://stackoverflow.com/questions/25373224
复制相似问题