Я использую install4j для установки приложения интрасети, для которого требуется порт HTTP и HTTPS. Я хотел бы проверить, доступны ли эти порты, и предупредить пользователя/заблокировать установку, пока они не выберут недоступные порты.
Единственный способ, который я вижу для этого (помимо пользовательского кода), - обеспечить сбой службы Windows, если приложение не может привязаться к нужным портам, и использовать стратегию отказа «Спросить пользователя, следует ли повторить попытку или выйти в случае сбоя». В коде запуска веб-сервера я использую System.exit(1), если сервер не может выполнить привязку к портам. Однако это не регистрируется установщиком как сбой — установка продолжается без вызова стратегии сбоя.
Как правильно сигнализировать об отказе действия «Запустить службу»? Использовали ли другие люди альтернативный подход к гарантии использования доступных портов при установке?