У меня есть приложение Java, для которого я пишу установщик. Мы используем программу AdvancedInstaller для создания нашего установщика (ну, в настоящий момент мы оцениваем его, но скоро обязательно приобретем лицензию), и, хотя он имеет специальную поддержку для приложений Java, он больше ориентирован на их переупаковку в настольный компьютер. типа приложений, а наше программное обеспечение представляет собой серию Java-сервисов и других утилит, которые не имеет смысла распространять в EXE-оболочках. Целевая аудитория этого программного обеспечения очень специфична, и мы знаем, что наше программное обеспечение, вероятно, будет автоматически распространяться на компьютерах под управлением Windows 2003 Server. Поэтому требование Java в качестве предварительного условия в основном делает больше работы для какого-то плохого системного администратора, и я бы предпочел этого избежать, если это вообще возможно, переупаковав установщик JRE внутри нашей собственной.
Я обнаружил, что, если я попытался запустить установщик JRE в качестве шага предварительной установки из моего MSI, он жалуется, что другой установщик уже запущен (мой, конечно), поэтому он выручает. Когда я пытаюсь добавить установщик JRE в качестве предварительного программного обеспечения в проекте AdvancedInstaller (в виде EXE-файла в комплекте, а не URL-ссылки), на самом деле он никогда не устанавливается, несмотря на попытки принудительной установки.
Какой лучший способ упаковать JRE? Я не очень-то разбираюсь в Java, поэтому я не слишком много знаю о том, как другие разработчики справляются с этой же проблемой, за исключением того, что их пользователи должны самостоятельно искать и устанавливать JRE. Идеальным решением для нас было бы найти установщик EXE, который можно запустить из другого установщика MSI, или, если это возможно, просто упаковать все файлы внутри JRE, а затем создать соответствующие переменные реестра и среды. Как мне это сделать?