擅长:python、mysql、java
<p>假设崩溃意味着Java程序抛出一个异常,那么当发生异常时,我会终止Python进程。我没有看到你的代码,但是:</p>
<pre><code>class Foo {
Process p;
private void doStuff() throws Exception {
p = Runtime.getRuntime().exec("program.py", envp);
// More code ...
}
private void startStuff() {
try {
doStuff();
} catch (Exception e) {
p.destroy();
}
}
public static void main(String[] args) {
Foo foo = new Foo();
foo.startStuff();
}
}
</code></pre>
<p>如果只有导致程序崩溃的异常从<code>doStuff()</code>中逃逸,类似这样的方法应该有效。在</p>
<p>即使您不希望程序在完成时以这种方式崩溃,我认为这种方法比将它包装在shell脚本中更好,这样会在某种程度上杀死Python进程。在程序中处理它就不那么复杂了,甚至在程序完成后保留代码可能是个好主意,因为你可能仍然有一些你不知道的bug。在</p>