Java Web Start и основной класс - PullRequest
       29

Java Web Start и основной класс

1 голос
/ 24 сентября 2011

Я сделал заявку, и у меня будет автообновление при запуске. Читая на стеке потока, многие люди предлагают начать Java веб. Итак, с Netbeans я включил веб-конфигурацию запуска и вскоре включил. Он сгенерировал launch.jnpl html, файл jar и папку lib. В основной программе я вставляю

DownloadService2 service = (DownloadService2)
ServiceManager.lookup("javax.jnlp.DownloadService2");                        
ResourceSpec spec = new ResourceSpec("http://www.mysite:8080/.*", "1.*", service.JAR);
ResourceSpec results[] = service.getCachedResources(spec);
 results = service.getUpdateAvailableResources(spec);

ТАК, что я загрузил все файлы в папке dist на веб-сервер. Теперь, если я запускаю приложение с lunch.jnpl, оно запускается без проблем. Но когда я использовал свой jar-файл, я получил сообщение об ошибке: Не удалось найти выход из программы «Мой класс» из основного класса.

Теперь, если я не использую DownloadService2, он работает с Jar File. Итак, мой вопрос: Как я могу использовать Java Web start для обновления моей программы?

Например, если я выпускаю другую версию и добавляю в нее кодовую базу URL, если я запускаю программу с файлом jar, она должна загрузить новую версию.

Может ли кто-нибудь сказать мне, если я что-то неправильно или неправильно понял, как работает Java web start?

Редактировать: я хотел бы, чтобы программы следовали этой строке: 1) обед с банкой, если это возможно, проверьте наличие обновлений ... если не получается, в автономном режиме используйте старые 2) если онлайн проверить наличие обновлений, если доступно обновление загрузки в папке 3) если обновление недоступно, используйте более старое. повторить 1 2 3

1 Ответ

1 голос
/ 24 сентября 2011

Ну, теперь это два участника, не так ли:

Во-первых, почему вы получаете сообщение об ошибке в вашем основном классе?Ваш файл jnlp имеет правильный пакет и имя объявленного основного класса?Это должно быть что-то вроде:

<application-desc main-class="package1.package2.MyMainClass" />

Во-вторых, как работает обновление.Хорошо, когда кто-то получает доступ к вашему файлу jnlp и запускает из него ваше приложение jar, этот файл jar загружается локально на компьютер клиента.Затем, когда он запустит его во второй раз, протокол jnlp сначала проверит URL-адрес, чтобы узнать, обновлен ли jar-файл.Если это так, то он получает эту новую версию, и это то, что клиент будет работать.Если он не был обновлен, ранее загруженный файл jar будет запущен с локального компьютера.

...