首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python子进程运行javaw.exe

使用python子进程运行javaw.exe
EN

Stack Overflow用户
提问于 2014-08-18 22:48:20
回答 1查看 476关注 0票数 0

我在Windows命令提示符中使用javaw.exe,它在生成我的Swing java程序后立即返回。

但是如果我使用Python的subprocess.call()来做同样的事情,它就会挂起。

代码语言:javascript
复制
import subprocess
retval = subprocess.call(['javaw.exe','-jar','myjar.jar',arg1,arg2])

我做错了什么,为什么会有这种区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 22:52:17

subprocess.call将等待进程(javaw)完成,就像它在文档中说的:

运行args描述的命令。等待命令完成,然后返回返回代码属性。

您可能应该使用subprocess.Popen代替。

查看取代os.spawn家族的文档

代码语言:javascript
复制
pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg")
==>
pid = Popen(["/bin/mycmd", "myarg"]).pid

在你的例子中,这可能是

代码语言:javascript
复制
pid = subprocess.Popen(["javaw.exe", "-jar", "myjar.jar", arg1, arg2])

根据您的心情和需求,可能调整为获得javaw.exeshell=True的绝对路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25373224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档