Мне кажется, что использование сценариев (ant / maven) более естественно для этой задачи, в то время как Java должна усердно работать, чтобы прочитать все файлы и папки и скопировать их в другую папку.
Использование отдельного приложения (например, Ant / Maven / утилита "unzip") требует меньше усилий при написании кода. Однако также требуется, чтобы приложение было доступно на платформе, на которой вы хотите, чтобы ваш установщик работал. Кроме того, Ant и Maven обычно требуют, чтобы вы создали файл «build.xml» или «pom.xml», чтобы сообщить приложению, что делать.
Ant, возможно, является хорошим вариантом в этом отношении, потому что вы можете встроить соответствующий файл JAR Ant в вашу программу установки, а файл "build.xml" может быть очень простым.
Но все сводится к тому, какой подход, по вашему мнению, будет проще всего реализовать ... учитывая все ваших требований.