Согласно документации Javaws , вы можете очистить кеш с помощью:
javaws -uninstall
или
javaws -uninstall <jnlp>
Однако почти по определению вам не нужно очищать кеш, если приложение обновляется. Просто кажется, что иногда Javaws не обновляет приложения.
Я прибег к проверке URL-адреса, где хранится «последняя версия» моего приложения. Когда приложение запускается, я выбираю URL и сравниваю с запущенной версией. Если они отличаются, я выскакиваю "Есть новая версия доступна - обновить сейчас?" окно сообщения.
Если пользователь выбирает обновление, я использую (с соответствующей обработкой исключений не показано):
String uri = "http://www.myserver.com/path/to/myjnlp.jnlp";
String proc = "javaws";
Process javaws = new ProcessBuilder("javaws", uri).start();
System.exit(0);
Пока что этого достаточно, но при необходимости я мог бы предварить челюсти:
Process uninstall = new ProcessBuilder("javaws", "-uninstall", uri).start();
uninstall.waitFor();
Единственным недостатком этого является то, что, если у вас есть ссылки на рабочий стол, пользователю будет предложено добавить их снова. Но это небольшая цена за обновление, которое действительно работает ...