使用java代碼可以在Windows中停止應用程序嗎? 我想創建一個程序,就像在我的電腦上停止應用程序的快捷方式。是否有可能使用ProcessBuilder?謝謝使用Java代碼終止/停止應用程序
回答
是否有可能使用java代碼停止窗口中的應用程序? ...是否有可能使用ProcessBuilder?
只有當您嘗試從相同的Java應用程序啓動應用程序時,纔會嘗試從中填充應用程序。
除此之外,您需要求助於運行特定於Windows的命令來執行查殺......或基於JNI的操作來創建本機Windows庫調用。
其他併發症是您可能無法殺死某些進程由於權限問題,並且某些進程可能會被拒絕被終止。
我相信JRE不會爲系統進程提供API。 ProcessBuilder
可以創建系統進程,但它不能爲您在JVM之外創建的進程提供一個Process
對象。我相信這是Java人員的哲學決定,儘可能避免某些特定於操作系統的任務。你可能認爲每個操作系統都有pid,或者它們都有某種kill消息,但是Java運行在很多操作系統上,其中一些非常奇怪。
你可以讓本機代碼做到這一點,並用JNI包裝,但這會很浪費。正如988052先生所說,我建議你通過Runtime.exec
或ProcessBuilder
執行系統特定的命令。您需要決定要支持哪些操作系統,並確保爲每個操作系統獲取命令(以及操作系統檢測代碼)。
平原的Java,沒有本地訪問?編號
ProcessBuilder允許您控制從Java應用程序內啓動的進程,但它不會讓您控制由其他進程啓動的進程。
根據用戶988052的評論,您可以使用Sysinternals Suite中的pskill
,通過Runtime.exec
完成此操作。 pskill
使用TerminateProcess函數調用。您也可以使用JNI(或其他本地調用方,如JNA,NLink等)調用此函數,但您需要通過OpenProcess函數調用獲取該進程的句柄。
如果您使用OpenProcess,請確保您在dwDesiredAccess中請求PROCESS_TERMINATE(0x0001)。 – user314104
- 1. 使用java代碼停止tomcat中的web應用程序
- 2. 使用Java終止程序
- 3. 服務代碼在應用程序停止時停止
- 4. 通過終端停止應用程序
- 5. 如何防止殺死/終止或停止Windows應用程序
- 6. 不幸停止應用程序停止
- 7. Bluecove&JavaFX - >應用程序線程不會被終止/停止
- 8. 防止用戶終止Java程序?
- 9. Java Swing應用程序意外終止
- 10. 應用程序不終止
- 11. 終止應用程序
- 12. EnterpriseLibrary.Logging終止應用程序
- 13. 應用程序終止
- 14. 當應用程序終止時,每運行10分鐘運行代碼終止
- 15. 使用DateTime終止應用程序?
- 16. 如何停止Java應用程序?
- 17. 當應用程序終止時停止位置更新
- 18. 如何發送終止信號來停止Rails應用程序?
- 19. 如何停止應用程序的終止
- 20. 停止互聯網活動當應用程序終止
- 21. 應用程序停止unexpectdly
- 22. android:OnEditorActionListener停止應用程序
- 23. RSS應用程序停止
- 24. 停止Android應用程序
- 25. 應用程序已停止
- 26. 應用程序已停止
- 27. 應用程序停止
- 28. AsyncTask停止應用程序
- 29. 當「ctrl c」用於終止程序時程序不停止
- 30. 停止應用程序被終止,而不輸入正確的密碼? c#
我在過去通過使用* Runtime.exec *將調用包裝到* pskill * Windows util(不知道是否仍在使用)。但是我不知道OS * *關於* pskill *的保證。在Windows上的AFAICT與在Un * x上的不同。在Un * x發佈* SIGKILL *意味着程序**必須立即退出,並且必須將其所有資源**返回給操作系統(這是理論並且在實踐中運行良好)。 – TacticalCoder
TerminateProcess和NtTerminateProcess類似於在NT中發送SIGKILL - 也就是說,它要求操作系統「立即」終止進程,儘管(對於Linux和Windows以及可能是大多數的* nix),這可能由於進程訪問某些系統資源(例如永不返回的IO調用)。 Windows中SIGTERM的模擬是將WM_CLOSE窗口消息發送到應用程序的窗口,除非應用程序是服務。在這種情況下,使用ControlService和dwControl = SERVICE_CONTROL_STOP。 – user314104