2011-09-24 4 views
1

Я сделал приложение, и у меня было бы автоматическое обновление при запуске. Чтение в stackoverflow, многие люди предлагают Java веб-старт. Так что с Netbeans я включил настройку веб-начала и скоро. Он сгенерировал файл launch.jnpl html, jar и lib. В основных программах я вставитьJava Web Start и Main Class

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); 

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

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

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

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

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

ответ

1

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

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

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

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

+0

есть класс в jpln и как я могу сделать этот шаг в моей теме редактирования? Запустите jar (который не запускается) проверьте наличие обновлений, если в режиме онлайн загрузите новое доступное обновление в папку или если оно обновит его. В автономном режиме используйте более старый вариант в папке. – Strom