gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:22:44 24 4
gpt4 key购买 nike

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

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

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

澄清一下:我们的客户端计算机实际上并不是经典客户端 - 它们是为数百个终端用户提供服务的 Citrix 服务器。因此,很容易发生同一应用程序在同一时间被多次下载的情况。

最佳答案

由于没有人回答,我会这样做,所以也许有一天它会对遇到同样问题的人有所帮助。根据我所掌握的信息和所做的测试,我发现无法指示 Java Web Start 检测当前已下载的同一应用程序(由同一台计算机上的同一用户发出)的请求。

显然,Java Web Start 将启动另一个下载过程,因此将有两个相同的应用程序内容的两次相同的下载 - 从而不必要地消耗网络、Web 服务器和磁盘资源。这在 Citrix XenApp 等虚拟应用程序交付系统中是一个相当大的问题。

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

  1. 循环等待(向用户显示一些进度指示器),直到创建锁定文件(获取锁定)。
  2. 从服务器下载更新的应用资源(如果有):javaws -import -silent http://someserver/jnlp-app.jnlp
  3. 启动应用程序:javaws http://someserver/jnlp-app.jnlp
  4. 删除锁定文件(释放锁定)

关于java - 如何防止同一应用程序的并行 Java Web Start 下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com