Как связать Java-зависимое приложение с JRE в MSI - PullRequest
5 голосов
/ 19 июля 2011

Это похоже на Как я могу создать MSI-файл для программы Java? (затмение) , но, в частности, касается и объединения JRE.

В настоящее время я работаю над созданием MSI для своего продукта, чтобы его можно было установить как дополнение к Windows Home Server. Установщик должен быть установщиком MSI без вывода сообщений.

Мой продукт зависит от Java 1.6. Я хочу связать Java внутри MSI, но не обязательно установить JRE, просто скопируйте файлы в каталог моего продукта и выполните их оттуда.

Первоначально я попытался установить JRE в любом случае в качестве первого шага. Я использовал тихий установщик JRE , однако оказалось, что из-за того, что JRE устанавливает себя через другой MSI, под прикрытием, правило one-MSI-Installation-Running-Once-Once было нарушено, и поэтому JRE не может быть установлен.

Так что я вместо этого перешел на копирование файлов JRE. Мне удалось создать MSI со всеми предметами, но он имеет колоссальные 60 МБ! Это около 33 МБ для моего приложения, а остальное - JRE. Мой обычный setup.exe, который объединяет JRE, занимает около 30 МБ, поэтому я предполагаю, что сжатие в последнем случае намного лучше (я также использую сжатие Pack200).

Я использую WiX для сборки MSI и включил сжатие.

Каков наилучший способ связать JRE с зависимым приложением внутри MSI?

1 Ответ

4 голосов
/ 19 июля 2011

ИМХО, вам следует просто добавить весь (распакованный) каталог JRE в файлы вашего установщика.Затем запустите вашу JRE с заданного, известного пути.Многие продукты (например, DB2, Oracle 11g и даже WebSphere Application Server) делают это именно так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...