Как сказал Питер, это зависит от того, что должна делать программа.
Как правило, запуск Java-программы сопряжен с некоторыми издержками по сравнению со сценарием оболочки. Однако, если необходимо выполнить некоторые сложные операции, лучше всего подойдет java.
Я бы лично выбрал Python для сценариев, для которых оболочка не очень подходит и для которых Java может быть излишней:)
Также следует помнить, что системные администраторы могут довольно хорошо читать и понимать скрипты оболочки, но Java - это другое дело. Это может быть проблемой, а может и нет.