簡體   English   中英

使用python子進程運行javaw.exe

[英]using python subprocess to run javaw.exe

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

但是,如果我使用Python的subprocess.call()做同樣的事情,它將掛起。

import subprocess
retval = subprocess.call(['javaw.exe','-jar','myjar.jar',arg1,arg2])

我在做什么錯,為什么會有這種區別?

subprocess.call將等待進程(javaw)完成,如文檔中所述:

運行args描述的命令。 等待命令完成,然后返回returncode屬性。

您可能應該使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM