JNLP с локальной кодовой базой - как обновить? - PullRequest
7 голосов
/ 24 ноября 2011

Допустимо указывать кодовую базу следующим образом:

<jnlp spec="6.0+"
    codebase="file:/c:/MyApp/"
    href="myapp.jnlp">

Когда вы импортируете это с JWS, он создает ярлык на рабочем столе и приложение работает.

Однако одна вещь сильно отличается от удаленной базы кода. Когда я обновляю эти файлы во время работы приложения, оно в основном перестает работать, залито ClassNotFoundExceptions. Кажется, что JWS не скопировал jar-файлы или не скопировал их немедленно, так как они обновляются, перезаписывая те, которые использовались запущенным процессом.

Как мне заставить его работать так, как если бы файлы были удаленными? То есть копировать файлы в кеш и проверять наличие обновлений только при запуске.

РЕДАКТИРОВАТЬ : Я не нашел способа сделать это и решил пойти с заменой доморощенного. Попутно я нашел несколько ошибок и сделал несколько замечаний, которые подытожил на http://squirrel.pl/blog/2011/11/24/java-web-start-bugs-offline-edition/. Публикация здесь на случай, если это кому-нибудь пригодится.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2013

Для автоматического обновления приложения вы должны использовать тег <update>.

<update check="always" policy="always"/>

А также, если хотите, ваше приложение может работать в автономном режиме <offline-allowed/>.
Такжедля предоставления всех разрешений безопасности вам необходимо добавить тег <security>.
Добавьте следующие теги в файл JNLP.

    <information>
        <offline-allowed/> 
    </information>

    <security>
        <all-permissions/>
    </security>

    <update check="always" policy="always"/>

    <resources>
        <jar href="your-signed.jar" main="false" download="eager"/>
    </resources>   
0 голосов
/ 13 декабря 2011

В нашем приложении кодовая база:

<jnlp codebase="http://xxxx.xxx.xxx/jars"> 

и ваш jar-файл должен быть помещен в your_webapp_root_directory / jars. Для тестирования вы можете ввести URL в вашем браузере: http://xxxx.xxx.xxx/jars/xxxx.jar,, если вы можете скачать файл xxxx.jar, он работает.

...