2009-08-18 6 views
0

Sun's Deployment Toolkit содержит функцию для установки конкретной версии JRE, но для этого требуется использование веб-браузера. Как приложение для настольных приложений может загружать JRE программно (без использования браузера)?Загрузка программного обеспечения JRE?

ответ

1

Возможно, вы захотите проверить Sun's kernel installer for Java - он довольно мал и берет на себя загрузку и установку на полную JVM в фоновом режиме. В зависимости от того, как вы развертываете приложение, это может быть достаточно маленьким, чтобы просто включить его. В нашем приложении даже этот установщик слишком велик, поэтому мы обнаруживаем текущую установленную JRE, а затем загружаем установщик ядра, если обнаружим, что это необходимо.

Вы всегда можете использовать загрузку http (за пределами веб-браузера) из своей системы установки, чтобы получить программу установки ядра, а затем запустите ее. Мы используем NSIS, и есть несколько библиотек загрузки HTTP, которые хорошо работают для этого. Есть также несколько плагинов NSIS, которые могут обнаружить правильную версию Java. Комбинация этих двух функциональных возможностей всегда была достаточной для нас.

EDIT - если вы используете NSIS, here's a plugin, который будет загружать файл через http или ftp изнутри установки.

и здесь full featured Java launcher using NSIS. Я не забочусь о конкретной технике фактического запуска приложения - с помощью javaw.exe, но общий подход к обнаружению версии JRE, повышение UAC, загрузка установщика JRE звучит. У нас есть собственная пусковая установка (вместо java.exe), которая позволяет нам иметь собственное имя процесса, значки и т. Д.

Лично я рекомендую выполнять такие работы в самой установке.

+0

Достаточно честный, но тогда как вы программно загружаете установщик ядра Java? – Gili

+0

Хотите, чтобы загрузка была инициирована вашим приложением (если у вас есть собственный .exe, который запускает JVM)? Или установщиком? Наиболее вероятный сценарий - через установщик, и в этом случае он будет зависеть от вашей технологии установки. Я обновил ответ, чтобы включить ссылку на способ загрузки HTTP в NSIS. Если вы используете другой механизм установки, вам придется найти эквивалент. –

1

Вы можете использовать java web start для запуска приложения с помощью ярлыка на рабочем столе. Если вы это сделаете, структура веб-начала может загружать и устанавливать JRE так же, как если бы она была запущена из браузера.

Если вы распространяете приложение как приложение для веб-запуска на основе браузера, вы можете установить свойства в файле jnlp, который создает начальное меню и/или значки на рабочем столе при первом запуске. Если вы выберете другую форму распространения, вы можете вручную создать ярлык, который вместо этого будет звонить javaws.

+1

Вам не понадобится JRE, чтобы использовать веб-запуск Java в первую очередь? –

+0

Да, я предположил, что настольное приложение было разработано на Java, но, как вы уже указали, это не обязательно так. Если это не веб-запуск java, это не поможет. – henrik

0

Вы можете использовать JSmooth для проверки Java во время запуска, что позволит пользователю установить его.

Если вам нужна бесшумная установка, вам нужна версия MSI (для Windows), которая, насколько я знаю, общедоступна.

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