Если сервер и утилиты не имеют абсолютно разных зависимостей, я бы упростил и поместил все в одну банку.Предоставьте сценарии оболочки, которые обертывают вызовы для соответствующих классов:
# startServer.cmd
java -cp MyServer.jar;other.jar com.foo.myserver.Main
#showDiagniostics.cmd
java -cp MyServer.jar;other.jar com.foo.myserver.Diagnostics
Вы можете сделать его исполняемым файлом jar с классом запуска сервера в качестве основного класса, но мне легче иметь исполняемый скрипт, чемдолжен использовать java -jar MyServer.jar