首页 文章

如何防止同一应用程序的并行Java Web Start下载?

提问于
浏览
1

我们已将Java Swing应用程序部署到Intranet Web服务器,以便客户端计算机可以使用Java Web Start访问和下载它 . 所有应用程序文件(jar文件)的总大小为130 MB .

我们现在面临这个问题:当用户点击链接并启动下载程序时,会出现带有进度条的对话框 . 在下载时,如果他/她再次单击链接,Java Web Start将启动另一个下载过程 . 此时,同一应用程序将有两个并行下载(两个进度对话框) . 最终,当下载完成后,用户(或系统)缓存中将有大约260 MB的文件,证明实际上有两个(相同的)应用程序已下载 .

有没有办法防止同时多次下载同一个应用程序?是否可以配置Java Web Start启动程序,以便它可以检测何时已经下载了正在进行的同一个应用程序?

只是为了澄清:我们的客户端计算机实际上不是传统客户端 - 它们是为数百个终端用户提供服务的Citrix服务器 . 因此,很容易发生同时下载同一个应用程序的情况 .

1 回答

  • 0

    由于没有人回答,我会这样做,所以也许有一天它会对遇到同样问题的人有所帮助 . 基于我所拥有的信息和测试,我发现没有办法指示Java Web Start检测当前已经下载的同一应用程序(由同一台机器上的同一用户制作)的请求 .

    显然,Java Web Start将启动另一个下载过程,因此两个相同的应用程序内容将有两个相同的下载 - 因此不必要地消耗网络,Web服务器和磁盘资源 . 这在Citrix XenApp等虚拟应用交付系统中非常严重 .

    我想到的一个解决方案是创建自定义java启动器应用程序,该应用程序将下载请求与锁定文件同步 . 就像是:

    • 等待循环(向用户显示某个进度指示器),直到创建锁定文件(获取锁定) .

    • 从服务器下载更新的应用程序资源(如果有): javaws -import -silent http://someserver/jnlp-app.jnlp

    • 开始申请: javaws http://someserver/jnlp-app.jnlp

    • 删除锁定文件(释放锁定)

相关问题