Можно ли принудительно очистить кэш при обновлении приложения 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();
единственным недостатком этого является то, что если у вас есть ссылки на рабочий стол, пользователю будет предложено добавить их снова. Но это небольшая цена, чтобы заплатить за обновление на самом деле рабочий...
в настоящее время нет никакого способа, чтобы очистить кэш внутри запущенного приложения, или, по крайней мере я не смог найти.