2010-10-06 55 views
1

我有一个服务器和客户端工作正常,他们相互传输文件和成功处理命令。事情是,一旦连接到服务器,服务器可以要求客户端自行更新。使用自己的Java软件的自定义更新实现

因为我做了所有使用TCP连接的套接字,并且我不能使用java web start,所以我正在寻找一种方法来更新软件。

有一件事我认为是:

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

也许我可以将连接对象发送到将更新的软件,但主要只能应付String。

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

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

你有没有注意到你建议的解决方案如何清楚地模仿java Web Start行为?我真的很高兴知道为什么Java Web Start(这是您深入研究的所有问题的明显解决方案)不符合您的需求。 – Riduidel 2010-10-06 13:17:47

+1

它不符合我的需求,因为我只能访问我的TCP连接,只是没有更多。 – fredcrs 2010-10-06 13:33:04

回答

1

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

每次启动,如果应用程序比较版本时间的更新,然后下载一个临时的所有新的更新目录

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

最后提示用户该应用程序已更新并启动新更新的应用程序。我会说。

+0

似乎是一个好主意,我会尝试...但要复制到我的库我需要覆盖这些文件,对不对? renameTo不会覆盖它。所以我将不得不先删除这些文件,但我害怕有人在我删除这些文件后关闭计算机... – fredcrs 2010-10-06 13:35:50

+0

@darri我提到它,'成功下载后调用另一个小应用程序将这些文件复制到您的库文件,以便实际更新您的应用程序“,直到原始库安全无损 – 2010-10-06 16:22:27