【问题标题】:Using own Java software´s custom update implementation使用自己的 Java 软件的自定义更新实现
【发布时间】:2010-10-06 13:06:50
【问题描述】:

我有一个运行良好的服务器和客户端,它们相互传输文件并成功处理命令。问题是一旦连接到服务器,服务器可以要求客户端更新自己。

由于我使用带有 TCP 连接的套接字进行了所有操作,并且无法使用 java web start,因此我正在寻找一种可以更新软件的方法。

我想到的一件事是:

  • 让 java 调用另一个 java 软件并自行关闭。然后其他 java 软件将再次连接到服务器并等待更新请求,因此它可以替换当前版本中的所有文件(lib 目录和 jar 主文件 - 我使用 Netbeans)。

也许我可以将连接对象发送到要更新的软件,但主要只接受字符串。

所以我在这里问两个问题:

  1. 这是一个好的解决方案吗?还是有更好的?
  2. 如果这样做,如何将我的原型的客户端对象从一个应用程序发送到另一个应用程序?

【问题讨论】:

  • 您是否注意到您建议的解决方案如何清楚地模仿 java Web Start 行为?我真的很高兴知道为什么 Java Web Start(这是解决您深入研究的所有问题的明显解决方案)不适合您的需求。
  • 它不符合我的需求,因为我只能通过我的 TCP 连接访问,仅此而已。

标签: java networking client-server


【解决方案1】:

我建议在具有最新版本应用程序的服务器上保留一个属性文件。

每次启动应用程序时都会比较版本(如果可更新),然后将所有新更新下载到临时目录中

成功下载后调用另一个小应用程序将这些文件复制到您的 lib 文件中,以便实际更新您的应用程序

在最终提示用户该应用已更新并启动新更新的应用。我会说。

【讨论】:

  • 似乎是个好主意,我会尝试...但是要复制到我的 Lib,我需要覆盖文件,对吗? renameTo 不会覆盖它。所以我必须先删除那些文件,但我担心删除这些文件后有人会关闭计算机......
  • @darri 我已经提到了,After SUCCESSFUL download invoke another small application to copy those files to your lib file in order to update your app actually 直到那时原始库是安全且未受影响的
猜你喜欢
  • 2021-09-22
  • 1970-01-01
  • 2022-10-25
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2023-03-05
相关资源
最近更新 更多