java中的自我更新游戏

时间:2013-08-03 05:53:45

标签: java jar version patch

我正在用Java创建一个具有以下重要功能的游戏:

1)连接到远程服务器(我制作),并检查更新并在必要时安装它们 2)不是单个.JAR文件(即有多个.jar和其他东西,例如.png,.wav等) 3) JAVA WEB START不是一个选项,因为我想让这一切都自己

记住上面的事情,我遇到了一个问题。我不知道如何实现多个“补丁”更新系统。目前我有1个.txt文件,服务器从中读取,并将.txt中列出的文件发送给客户端,然后客户端将它们移动到位。问题是,这仅对2个更新有用。我正在寻找一个更有用的长期解决方案,我需要一些帮助。以下是我想到的一些事情:

1)有一个以每个版本命名的zip文件夹(问题:客户端如何获取所有最新的文件 2)每个包含版本的jar文件都有一个.txt文件(问题:不能用png或wav做,我不知道我将如何读取txt文件开头)

我真的需要一些帮助,我已经尝试使用谷歌搜索了,我已经考虑过它已经过了3个星期了,而且想不出任何东西。

问题:如何使用多个补丁更新游戏/程序?

2 个答案:

答案 0 :(得分:1)

首先,长期以来最好的解决方案是使用Webstart / JNLP。

但如果你坚持不使用它(无论出于何种原因)那么技术上是可行的。但是:

  • 它既麻烦又复杂。

  • 效率非常低('因为每次用户必须加载整个程序),或者用户必须信任你足够的安装你的程序的权限,这将允许它安装随机的东西在他的机器上,没有通知。

这样做的方法是将游戏分成启动器部分和应用程序部分。启动程序需要具有写入和删除(非临时)文件的权限,并从Internet获取内容。它“回家”查找应用程序文件的最新版本,然后下载并安装它们。它必须应对各种错误条件,它需要确保没有任何东西可以欺骗它在用户的机器上安装坏东西,等等,有人欺骗你的更新服务。

当然,JNLP负责所有这些,还有更多。人们将更愿意安装你的JNLP基础设施......这可能是不安全的,或者是积极讨厌的(他们都知道)。 (我不会在我的机器上安装自我更新应用程序,除非它是由具有无可挑剔凭据的公司提供的。)

答案 1 :(得分:0)

我认为你需要JNLP框架。

JNLP提供以下内容:

  • 允许用户从服务器
  • 下载jar 启动时
  • 验证应用程序是否需要更新
  • 在本地JVM上运行

实际上,每个java应用程序都可以转换为JNLP。只需在您的游戏所包含的所有罐子上签名,从您的游戏中创建可执行jar并创建可从您下载游戏的单个Web页面