Runtime.exec - это способ сделать это в Java. Любая другая библиотека, скорее всего, будет зависеть от платформы. Вам нужна очень веская причина, чтобы не использовать Runtime.exec.
В настоящее время у меня есть несколько программ, которые используют эту функцию, и это не вызвало никаких проблем.
С помощью Runtime.exec вы можете дополнительно заблокировать время ожидания завершения вызова. Вы можете записывать коды возврата и все, что программа командной строки записывает в консоль. И я уверен, что есть много других функций, это те, которые были мне полезны.
И вы всегда можете вызвать муравей, если действительно хотите использовать муравья! :)