Jeśli próbujesz zabić główny proces, w którym rozpoczął się twój kod Java, proponuję użyć System.exit()
. Korzyści są wyjaśnione tutaj: when should we call system exit in java.
Zasadniczo będzie uruchamiał haczyki zamknięcia, które sprawią, że wszelkie zależne procesy niebędące demonami, które mogły nie zakończyć swojej pracy, zostaną zabite, zanim proces zostanie zabity. To jest czysty sposób na zrobienie tego.
Jeśli proces nie twoje jest, trzeba będzie polegać na system operacyjny do wykonania tej pracy dla Ciebie jak wyjaśniono w tej odpowiedzi: Killing a Process Using Java
W tym przypadku swoją sugestię Runtime.exec()
zabić na * nix będzie być przyzwoitą drogą.
Teraz jak destroyForcibly()
, jesteś zazwyczaj zamiar zadzwonić, że na procesie potomnym wywoływanych przez kod Java, który był przypuszczalnie rozpocząć proces API ProcessBuilder.start()
lub Runtime.exec()
czy to własnego procesu lub innego procesu? –
jest to proces java lub dowolny proces? – Derlin
To było dla zewnętrznego procesu nie Java, ale dzięki za obie Shitsu – Kariamoss