6

从命令行更新 java web start 应用程序时是否可以强制清除缓存?

4

3 回答 3

5

就个人而言,我会在开发时禁用缓存。

Windows: - 去去控制面板/Java

Linux: - $JAVA_HOME/bin/jcontrol

-> 临时 Internet 文件 -> 设置 -> 取消勾选“在我的计算机上保留临时文件”

单击“删除文件”以清除所有缓存。

于 2011-11-06T08:03:23.073 回答
2

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

到目前为止,这似乎已经足够了,但如果有必要,我可以在 javaws 前面加上:

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

唯一的缺点是,如果您有桌面链接,则会提示用户再次添加这些链接。但要让更新真正起作用,这是一个很小的代价......

于 2012-10-12T01:09:42.567 回答
0

目前没有办法从正在运行的应用程序内部清除缓存,或者至少我找不到。

于 2011-11-08T12:51:37.757 回答