У меня есть рабочее приложение JNLP, которое мне нужно распространять среди различных нетехнических конечных пользователей.Комбинация Launch4J и Java Web Start?
Если на компьютере пользователя установлена новая JVM, все в порядке. Они просто дважды щелкают по файлу JNLP, который я им отправляю, а Java Web Start - все остальное.
Теперь я хотел бы распространять что-то, что работает с JVM или без него, например. a .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.
Есть ли такой продукт? Я подозреваю, что это не так, но это стоит того.
Update Я нашел this article, который имеет решение некоторых проблемы, связанные, хотя он предназначен для автономной установки и я, в основном связан с онлайн установками.
Я не очень беспокоюсь о не-windows-платформах. У Mac всегда установлен JVM, и я предполагаю, что большинство пользователей Linux имеют технические знания, чтобы найти и дважды щелкнуть файл '.jar', если это необходимо. – finnw