Вы можете попытаться сохранить Process
, возвращаемый exec()
и вызвать destroy()
, но я не думаю, что это сработает, так как вы выполняете команду windows, которая запускает новый процесс, который затем не управляется JVM (JVM видит только вещь rundll32).
Решение, которое наверняка будет работать, но не будет кроссплатформенным (я не думаю, что вас это действительно волнует, поскольку Word тоже не кроссплатформенный :) - это использовать другую команду оболочки Windows для получения того, что вы хотите как
taskkill /IM word.exe
Вы можете выполнить его так же, как и для открытия слова, с помощью defaultRuntime.exec(...)
. Если у вас открыто много текстовых процессов и вы хотите убить определенный, вам придется проанализировать список задач, чтобы получить правильный PID, а затем попытаться с помощью taskkill /PID XXXX
.