В общем, хороший способ решить эту проблему - абстрагировать ввод и вывод.Например, пусть ваш управляющий класс принимает InputStream и OutputStream в качестве аргументов в своем конструкторе.
В методе main вашей фактической программы создайте экземпляр этого контроллера с System.in и System.out соответственно.Для вашей «пакетной» программы вы можете предоставить любые другие InputStream и OutputStream , которые вам нравятся.
Что касается комментариев user1291492: модульное тестирование всегда рекомендуется, однако оно выглядиткак будто ваша проблема на самом деле не связана с тестированием, а скорее с изменением вашей программы в качестве своего рода посредника, что не одно и то же.
И если вам действительно нужен быстрый& грязное решение (я бы посоветовал не брать на себя технические долги), в системах * NIX вы можете попробовать это:
cat * | java -jar yourprogram.jar > logoutput.txt
при условии, что вы скопировали все входные файлы в один каталог. cat объединит все файлы в каталоге, которые затем будут переданы на стандартный ввод (через «|») вашей программы, чей стандартный вывод перенаправляется в «logoutput.txt (через«> »).