2013-03-15 60 views
0

我正在为java .jar应用程序开发更新启动器。我有几个.jar-archives和一个main.jar。更新时,我的发射器添加/取代必要的罐子。适合java的UpdateLauncher如何看起来像?

我只是不确定要照顾什么标准。所以我会描述这个过程如何工作,如果我忘记了某些东西,你可能会告诉我。

  1. 加载和FTP更新服务器
  2. version.xml文件比较请更新项目清单与两者的帮助version.xml文件
  3. 检查(以确保),如果这些文件目前仍在硬盘上确实存在有效(将它们添加到需要下载的项目列表中...应该不会发生)
  4. 创建需要下载的文件列表(这些项目位于服务器上以压缩形式)
  5. 将所有需要的文件下载到/ temp文件夹
  6. 打开所有文件到/温度/解压
  7. 移动的所有文件解压到/ data文件夹(或他们属于)
  8. 更新本地version.xml
  9. 检查所有文件是否符合实际版本 - 文件 - 列表

我真的不确定我是否忘记了一些东西?如果一些用户在/ data中弄乱了文件,我的更新程序会识别这个问题,并提出一个“修复更新”,其中所有丢失的文件都将被重新下载。但是用户如何处理version.xml?我应该存储加密的。是否有必要保持从更新服务器下载的version.xml打开,以便在检查版本和更新时没有人可以更改?还是我太担心这一切?

到目前为止,所有这些工作都完成了吗?是否足够安全,以便在修补程序之后不会在用户PC上创建凌乱的安装?

回答

0

您是否打算使用Java 1.6中的System Tray类来通知用户更新?对我来说,这似乎是这样的involve implementing an OSGi updater(就像Eclipse项目在IDE中的做法一样)。另外,JVisualVM.exe工具(与JDK一起提供)是这类事情的一个很好的例子,也许你可以从中得到一些想法,尽管我怀疑它是用C++编码的。

+0

感谢您的回答。它不像一个后台更新程序。这是一个应用程序启动器,在必要时启动程序时检查更新。我在做这个项目来学习更多关于编程客户/服务器应用程序的知识。作为这个客户端的一部分,我有一个updateLauncher。但我不知道我的解决方案是如何...“专业”。我在哪里可以读到现有的解决方案像equinox和其他人如何进行更新?我只是想能够建立一个质量类似于商业产品的更新。 :) – Ciprian 2013-03-15 20:08:30

+0

我不是一个很好的人问这个问题。你可以考虑尝试这个基于Maven的OSGI内核:http://karaf.apache.org/。这是一种学习曲线,但它对我来说很现代。 – djangofan 2013-03-19 03:18:30

相关问题