Java Web Start资源jar已跳过未来过期更新检查
我们有一个大的应用程序,包含很多jar文件,最近它停止了自我更新。所有的jar文件都由我们签名。当我们发布应用程序时,通常只更新一个jar文件,更改通常只有几个字节,并且我们不在jar文件上使用版本控制(我们可能每天多次更新此jar文件)。嗯,如果web start检测到新版本,它必须重新加载从众多jar文件中更新的jar文件,但最近通常不会。我们不能要求用户每次都清空他们的现金(这将加载最新的jar文件),所以我必须弄清这一点。 我首先开始谷歌搜索,并在我的jnlp中添加了这一行:Java Web Start资源jar已跳过未来过期更新检查,java,java-web-start,jnlp,Java,Java Web Start,Jnlp,我们有一个大的应用程序,包含很多jar文件,最近它停止了自我更新。所有的jar文件都由我们签名。当我们发布应用程序时,通常只更新一个jar文件,更改通常只有几个字节,并且我们不在jar文件上使用版本控制(我们可能每天多次更新此jar文件)。嗯,如果web start检测到新版本,它必须重新加载从众多jar文件中更新的jar文件,但最近通常不会。我们不能要求用户每次都清空他们的现金(这将加载最新的jar文件),所以我必须弄清这一点。 我首先开始谷歌搜索,并在我的jnlp中添加了这一行: <u
<update check="always" policy="always" />
因此,由于每个文件的“future expires”设置为Sat Aug 02 11:01:08,因此跳过jar文件。(记录在案,这大约是未来一个月)为什么?这个未来的过期日期从何而来,为什么它会破坏我们的web start应用程序更新?我们如何修复它呢?我最终发现问题在于,web管理员在web服务器上添加了一些默认的缓存标题,以加快web页面的速度,但这些标题随后也被用于jar文件。 (他添加了一个ExpiresDefault“访问加1个月”) 他现在删除了jar文件/jnlp文件的头,但是allready下载的jar文件仍然有这个expiresdefault属性。因此,我们还必须为登录到我们服务器的用户添加以下登录脚本:
IF EXIST %UserProfile%\javawsclearcache.txt (
exit /B
) ELSE (
echo. 2>%UserProfile%\javawsclearcache.txt
javaws -uninstall
)
这就解决了大部分用户群的问题,但是对于那些没有从我们自己的服务器上运行应用程序的用户来说,幸运的是,我很快就要放暑假了,所以这个月不会有太多的更新,从8月2日开始,我想他们也会定期更新
Resource (our website)/(our jar).jar has future expires: Sat Aug 02 11:01:08 CEST 2014 update check skipped.
IF EXIST %UserProfile%\javawsclearcache.txt (
exit /B
) ELSE (
echo. 2>%UserProfile%\javawsclearcache.txt
javaws -uninstall
)