我正在用Java创建一个具有以下重要功能的游戏:
1)连接到远程服务器(我制作),并检查更新并在必要时安装它们 2)不是单个.JAR文件(即有多个.jar和其他东西,例如.png,.wav等) 3) JAVA WEB START不是一个选项,因为我想让这一切都自己
记住上面的事情,我遇到了一个问题。我不知道如何实现多个“补丁”更新系统。目前我有1个.txt文件,服务器从中读取,并将.txt中列出的文件发送给客户端,然后客户端将它们移动到位。问题是,这仅对2个更新有用。我正在寻找一个更有用的长期解决方案,我需要一些帮助。以下是我想到的一些事情:
1)有一个以每个版本命名的zip文件夹(问题:客户端如何获取所有最新的文件 2)每个包含版本的jar文件都有一个.txt文件(问题:不能用png或wav做,我不知道我将如何读取txt文件开头)
我真的需要一些帮助,我已经尝试使用谷歌搜索了,我已经考虑过它已经过了3个星期了,而且想不出任何东西。
问题:如何使用多个补丁更新游戏/程序?
答案 0 :(得分:1)
首先,长期以来最好的解决方案是使用Webstart / JNLP。
但如果你坚持不使用它(无论出于何种原因)那么技术上是可行的。但是:
它既麻烦又复杂。
效率非常低('因为每次用户必须加载整个程序),或者用户必须信任你足够的安装你的程序的权限,这将允许它安装随机的东西在他的机器上,没有通知。
这样做的方法是将游戏分成启动器部分和应用程序部分。启动程序需要具有写入和删除(非临时)文件的权限,并从Internet获取内容。它“回家”查找应用程序文件的最新版本,然后下载并安装它们。它必须应对各种错误条件,它需要确保没有任何东西可以欺骗它在用户的机器上安装坏东西,等等,有人欺骗你的更新服务。
当然,JNLP负责所有这些,还有更多。人们将更愿意安装你的JNLP基础设施......这可能是不安全的,或者是积极讨厌的(他们都知道)。 (我不会在我的机器上安装自我更新应用程序,除非它是由具有无可挑剔凭据的公司提供的。)
答案 1 :(得分:0)
我认为你需要JNLP框架。
JNLP提供以下内容:
实际上,每个java应用程序都可以转换为JNLP。只需在您的游戏所包含的所有罐子上签名,从您的游戏中创建可执行jar并创建可从您下载游戏的单个Web页面