0
在python2.7腳本,我使用subprocess.call
運行這樣的Java程序:需要Java錯誤後繼續前進時,Python腳本使用子進程運行Java程序
java_command = "java -jar /path/to/java_program.jar %s %s >> %s" % (infile, outfile, logfile)
subprocess.call(java_command, shell=True)
...
#Do other stuff unrelated to this output
大多數當時,這工作得很好,但在某些情況下,Java程序犯錯:
Exception in thread "main" java.lang.NullPointerException
at MyProgram.MainWindow.setProcessing(MainWindow.java:288)
的問題是,我的Python腳本,然後停滯在subprocess.call()
線和不能做「其他東西」。
有沒有一種方法可以編輯我正在使用的java_command
或者我使用subprocess
繼續python腳本的方式,即使java程序掛起?
請注意,我無法修改java程序的代碼。
只是嘗試這樣做,但沒有成功。我認爲Java程序在出錯後並沒有完全退出。當我在命令行外部運行相同的java命令時,它會給出相同的答案,但仍然不會返回命令行提示符,直到我按Ctrl-C。 –
似乎基於[this](http://stackoverflow.com/a/18607936/1623026),異常可能不會終止JVM,這意味着我可能會卡在這裏。 –
我明白你的意思了。你是對的:Java程序需要特定的流處理來終止異常。您可能想要生成過程並繼續,偶爾檢查其狀態? – Prune