亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

終止java子進程的理想方法是什么?process.destroyForcibly()

終止java子進程的理想方法是什么?process.destroyForcibly()

元芳怎么了 2021-08-19 22:30:30
我有一個創建子進程的 Java Swing 應用程序。主 Swing 應用程序有一個停止按鈕,點擊后應立即終止子進程?!皃rocess.destroy()”不起作用。Process myProcess = new ProcessBuilder("java", "-classpath", System.getProperty("java.class.path"), "MyClass.java");try {    myProcess.waitFor();} catch (Exception e) {    e1.printStackTrace();}...myStopButton.addActionListener(new ActionListener() {    @Override    public void actionPerformed(ActionEvent e) {        myProcess.destroyForcibly();         // myProcess is a really long and complex process. So I could not destroy that using process.destroyForcibly().    }}我可以向子進程發送一些信號以在內部調用 System.exit() 嗎?我可以使用“taskkill”來終止子進程嗎?
查看完整描述

1 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

這真的取決于你的java版本。


在 Java 8 之前


public abstract void destroy()

殺死子進程。該 Process 對象所代表的子進程被強制終止。


爪哇 8


public abstract void destroy()

殺死子進程。此 Process 對象表示的子流程是否被強制終止取決于實現。


public Process destroyForcibly()

殺死子進程。該 Process 對象所代表的子進程被強制終止。此方法的默認實現調用 destroy() ,因此可能不會強制終止進程。強烈鼓勵此類的具體實現使用兼容實現覆蓋此方法。在 ProcessBuilder.start() 和 Runtime.exec(java.lang.String) 返回的 Process 對象上調用此方法將強制終止進程。


注意:子進程可能不會立即終止。即 isAlive() 可能會在調用 destroyForcibly() 后的短時間內返回 true。如果需要,可以將此方法鏈接到 waitFor()。


返回: 代表要強制銷毀的子進程的 Process 對象。


爪哇 9


public abstract void destroy()

殺死進程。此 Process 對象表示的進程是否正常終止取決于實現。強制進程銷毀被定義為立即終止進程,而正常終止允許進程干凈地關閉。如果進程不活動,則不采取任何行動。當進程終止時,來自 onExit() 的 CompletableFuture 完成。


public Process destroyForcibly()

強行殺死進程。該 Process 對象所代表的進程被強制終止。強制進程銷毀被定義為立即終止進程,而正常終止允許進程干凈地關閉。如果進程不活動,則不采取任何行動。當進程終止時,來自 onExit() 的 CompletableFuture 完成。


在 ProcessBuilder.start() 和 Runtime.exec(java.lang.String) 返回的 Process 對象上調用此方法會強制終止進程。


API注意事項:


該過程可能不會立即終止。即 isAlive() 可能會在調用 destroyForcibly() 后的短時間內返回 true。如果需要,可以將此方法鏈接到 waitFor()。實現要求:該方法的默認實現調用destroy(),因此不能強行終止進程。實現注意:強烈鼓勵此類的具體實現使用兼容實現覆蓋此方法。


返回:


代表進程被強行銷毀的 Process 對象


查看完整回答
反對 回復 2021-08-19
  • 1 回答
  • 0 關注
  • 2964 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號