У меня есть работающее приложение JNLP, которое мне нужно распространить среди различных нетехнических конечных пользователей.
Если на компьютере пользователя установлена последняя версия JVM, все в порядке.Они просто дважды щелкают файл JNLP, который я им отправляю, а Java Web Start делает все остальное.
Теперь я хотел бы распространять что-то, что работает с JVM или без него, например, файл .exe
, который загружается автоматическисовместимая JVM, если ее нет, вызывает javaws.exe
для загрузки файлов .jar и запуска приложения.
Launch4J - самое близкое совпадение, которое я нашел, но не может запустить программу через javaws.exe
.Единственные опции: java
и javaw
Мне нужен продукт, который может:
- Создать автономный файл
.exe
, для которого не требуется JVM длябыть предустановленным - Разобрать файл
.jnlp
и определить правильную JVM для загрузки при необходимости (я знаю, что Java Web Start может загрузить JVM при необходимости, но я хочу избежать загрузки двух, первыйдля загрузки Java Web Start и второго для запуска приложения, для которого может потребоваться определенная, но другая JVM.) - Загрузите и установите JVM автоматически, не просто направляют пользователя к загрузке Javaоткройте страницу или откройте новый мастер установки.
- При необходимости запросите пароль администратора (для разрешения установки JVM. Не думаю, что он встроен в установщики Sun JVM.)
- Показать только одно диалоговое окно безопасности (я хотел бы предложить пользователю только один раз, чтобы подтвердить, что он доверяет сгенерированному
.exe
, но я не хочу, чтобы второе приглашение подтвердило, что он доверяет .jar
файл, который будет из того же источника и подписан тем же сертификатом.) Я предполагаю, что для этого потребуется автозагрузчик установить сертификат перед запуском JWS.) - (необязательно) Скачать ресурсы приложения (например,
.jar
файлы) в фоновом режиме одновременно с JVM.Для этого потребуется, чтобы кэш работал до установки JVM, поэтому кэш должен быть реализован в собственном коде, а DownloadService
позднее будет взаимодействовать с ним с помощью JNI.
Имеет ли продукткак это существует?Я подозреваю, что это не так, но это стоит того.
Обновление Я нашел эту статью , в которой есть решения некоторых связанных проблем, хотя она предназначена дляавтономная установка, и я в основном занимаюсь онлайн-установкой.