Я обсуждал, нужно ли связывать JRE с моим приложением. Я привел некоторые причины ниже, почему я думаю, что это было бы полезно, но я также не решаюсь это сделать, потому что это делает приложение намного больше.Объединение JRE с приложением?
Почему я думаю, что было бы полезно:
Сейчас приложение запускается, запустив пакетный файл (ну, ярлык пакетный файл, он запускается с помощью пакетного файла). Он просто вызывает
java -jar XXX
, который требует, чтобы Java находилась в пути, что не всегда так.Мы небольшая команда и не полностью работаем на Java 7 (есть некоторые странные ошибки, которые мы пытаемся отлаживать). Если у пользователя есть Java 7, у них может быть неприятный опыт работы с программным обеспечением - это не хорошо для нас. Упаковка конкретной версии JRE гарантирует, что мы полностью протестировали ее.
Мы поддерживаем 32 и 64-разрядные платформы Windows. Когда пользователь загружает программное обеспечение, они выбирают 32 или 64-разрядные, но это вопрос, какую версию Java они используют. Большинство пользователей не знают, установлена ли 32-разрядная Java на их 64-битной платформе, и это может запутать 32-разрядную загрузку, даже если их ОС 64-разрядная.
Есть несколько веских причин, почему бы не упаковать его, хотя:
Если дыра в безопасности в Java или других существенных обновлений сделаны в JRE, мы должны распространять новую версию нашего приложения с новой версией Java. Обычно мы обновляем наше приложение каждые две недели, поэтому я не слишком беспокоюсь об этом сейчас.
Приложение теперь будет намного больше, поскольку оно включает в себя упакованную JRE.
Может ли кто-нибудь дать некоторые рекомендации относительно того, действительно ли (на основе этих требований) они считают, что это хорошая идея для упаковки JRE? Если нет, то какие альтернативы просто надеются, что java находится на пути (и что более важно, если это не так, возможно, наши пользователи могут не знать, как добавить его).
Не могли бы вы иметь две версии вашего приложения? Один с JRE в комплекте, а один без него и позволяет пользователю решить, какой из них скачать? – Ivan
@Ivan это, безусловно, возможность. –
Вполне возможно, что у пользователя даже нет общесистемного JRE для начала. В этом случае мы можем установить логику установки, которая будет связывать JRE, если отсутствует системная JRE, а также возможность выбора JRE между 32-битными и 64-битными. Локальное приложение JRE можно использовать, чтобы избежать замены общесистемной JRE, если присутствует общедоступная JRE. – ecle