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