2012-04-02 3 views
4

Я обсуждал, нужно ли связывать JRE с моим приложением. Я привел некоторые причины ниже, почему я думаю, что это было бы полезно, но я также не решаюсь это сделать, потому что это делает приложение намного больше.Объединение JRE с приложением?

Почему я думаю, что было бы полезно:

  1. Сейчас приложение запускается, запустив пакетный файл (ну, ярлык пакетный файл, он запускается с помощью пакетного файла). Он просто вызывает java -jar XXX, который требует, чтобы Java находилась в пути, что не всегда так.

  2. Мы небольшая команда и не полностью работаем на Java 7 (есть некоторые странные ошибки, которые мы пытаемся отлаживать). Если у пользователя есть Java 7, у них может быть неприятный опыт работы с программным обеспечением - это не хорошо для нас. Упаковка конкретной версии JRE гарантирует, что мы полностью протестировали ее.

  3. Мы поддерживаем 32 и 64-разрядные платформы Windows. Когда пользователь загружает программное обеспечение, они выбирают 32 или 64-разрядные, но это вопрос, какую версию Java они используют. Большинство пользователей не знают, установлена ​​ли 32-разрядная Java на их 64-битной платформе, и это может запутать 32-разрядную загрузку, даже если их ОС 64-разрядная.

Есть несколько веских причин, почему бы не упаковать его, хотя:

  1. Если дыра в безопасности в Java или других существенных обновлений сделаны в JRE, мы должны распространять новую версию нашего приложения с новой версией Java. Обычно мы обновляем наше приложение каждые две недели, поэтому я не слишком беспокоюсь об этом сейчас.

  2. Приложение теперь будет намного больше, поскольку оно включает в себя упакованную JRE.

Может ли кто-нибудь дать некоторые рекомендации относительно того, действительно ли (на основе этих требований) они считают, что это хорошая идея для упаковки JRE? Если нет, то какие альтернативы просто надеются, что java находится на пути (и что более важно, если это не так, возможно, наши пользователи могут не знать, как добавить его).

+2

Не могли бы вы иметь две версии вашего приложения? Один с JRE в комплекте, а один без него и позволяет пользователю решить, какой из них скачать? – Ivan

+0

@Ivan это, безусловно, возможность. –

+0

Вполне возможно, что у пользователя даже нет общесистемного JRE для начала. В этом случае мы можем установить логику установки, которая будет связывать JRE, если отсутствует системная JRE, а также возможность выбора JRE между 32-битными и 64-битными. Локальное приложение JRE можно использовать, чтобы избежать замены общесистемной JRE, если присутствует общедоступная JRE. – ecle

ответ

1
  1. Java Web Start. JRE будет на пути.
  2. Для контроля версий см. Java Web Start - Runtime Versioning & особенно Earlier Version.
  3. JWS может разделять ресурсы между 64-битным & 32-разрядный JRE.

Итак, «плохая идея расслоения JRE». Вместо этого используйте веб-старт.

+0

В этом случае пользователи иногда также не имеют интернет-соединений. Им предоставляется компакт-диск с приложением. –

+0

кстати. вы можете сделать webstart с html-страницы на компакт-диске ... –

+0

@ManfredMoser Атрибут «off-line» JWS работает только при вызове из командной строки (или через «Процесс»). Приложение JWS. не может быть запущен из ** ссылки ** на компакт-диске, потому что не существует способа, чтобы заранее указать базу кода. –

0

Я бы предложил НЕ связывать JRE, хотя я часто рассматриваю его как обычную практику.

Вместо этого я либо использовал бы webstart (также можно использовать в автономном режиме), либо другое решение для установки или pacakge-менеджера, обеспечивающее установку Java, включая правильную версию. Это будет во многом зависеть от операционной системы, на которую вы планируете работать.

Идти вниз, чтобы включить Java, возникает вопрос, что еще вы хотите включить, просто чтобы быть уверенным ...который приведет вас к всей операционной системе, и все, что нужно додумать до конца.

Я также предлагаю внимательно изучить, какие типы пользователей будут устанавливать приложение и адаптироваться к нему, и сделать какую-то оценку того, насколько они способны.

Смежные вопросы