Здесь есть два вопроса:
- Должны ли вы попытаться выполнить настройку в Java или вывести ее на экстернализацию?
- Предполагая, что вы его вывели на экстернализацию, следует использовать сценарии bash.
В этом случае ответ на вопрос 1) зависит. Подобные вещи сложно реализовать в чистой Java. Это оставляет два варианта; выполнить задачу с помощью Process или попытаться сделать это в библиотеке с собственным кодом через JNI или JPA. Последний подход сложен и дает вам сбои JVM, если вы допустили ошибку, поэтому я бы исключил это.
С другой стороны, если вы можете найти хороший стандартный или сторонний API Java, который делает то, что вам нужно (без заражения вашей JVM ненадежным JNI и т. Д.), Вы должны использовать это.
Ответ на 2) заключается в том, что сценарии bash будут работать так же, как и любой другой язык сценариев. Я думаю, что использование сценариев дает вам больше гибкости. Например, если вам нужно что-то сделать, чтобы компенсировать различия в разных вариантах Linux, UNIX или даже Windows (!), Вы можете включить это в внешние сценарии. (Вывод заключается в том, что скрипты должны быть настраиваемыми, поэтому не встраивайте их в свой исходный код!)
Другой альтернативой может быть прямой запуск команд (например, ifconfig
) с использованием полного имени команды и предоставление аргументов в виде массива строк и т. Д. Но если ваше приложение не выполнит внешнюю команду раз в минуту это, вероятно, не стоит усилий по написанию кода (Java) и потери гибкости / настраиваемости.