Можно ли принудительно очистить кэш при обновлении приложения java web start?

можно ли принудительно очистить кэш, когда приложение java web start обновляется из командной строки?

3 ответов


лично я бы отключил кэширование во время разработки.

Windows: - Go go ControlPanel / Java

Linux: - $JAVA_HOME/bin / jcontrol

- > временные интернет-файлы - > настройки - > снимите флажок "хранить временные файлы на моем компьютере"

нажмите "Удалить файлы", чтобы очистить весь кэш, пока вы на нем.


по словам документация Javaws, вы можете очистить кэш с:

javaws -uninstall

или

javaws -uninstall <jnlp>

однако, почти по определению, вам не нужно очищать кэш, если приложение обновляется. Просто кажется, что иногда Javaws не обновляет приложения.

я прибегнул к проверке URL-адреса, где я храню "последнюю версию" моего приложения. Когда приложение запускается, я получаю URL-адрес и сравниваю его с запущенной версией. Если они differ, я всплывающее окно " есть новая версия доступна-обновление сейчас?" окно сообщения.

если пользователь выбирает обновление, я использую (с соответствующей обработкой исключений не показано):

String uri = "http://www.myserver.com/path/to/myjnlp.jnlp";
String proc = "javaws";
Process javaws = new ProcessBuilder("javaws", uri).start();
System.exit(0);

пока этого, кажется, достаточно, но при необходимости я мог бы предварить javaws:

Process uninstall = new ProcessBuilder("javaws", "-uninstall", uri).start();
uninstall.waitFor();

единственным недостатком этого является то, что если у вас есть ссылки на рабочий стол, пользователю будет предложено добавить их снова. Но это небольшая цена, чтобы заплатить за обновление на самом деле рабочий...


в настоящее время нет никакого способа, чтобы очистить кэш внутри запущенного приложения, или, по крайней мере я не смог найти.