Java-下载程序、启动器和更新程序



我正在用纯Java制作一个非常简单的Java游戏!游戏部分进展顺利。我有一些玩游戏的人帮我测试它。当有更新时,我会给他们发一封电子邮件下载它。整个游戏只是一个jar文件,你可以直接从桌面上运行。这意味着你要在一个文件中下载整个游戏,这需要相当长的时间,这不是我想给人的第一印象。这就引出了我的第一个问题,那就是如何制作下载程序!我希望玩家下载一个小罐子,然后运行它在那里的appdata中下载一个更大的罐子(容纳游戏)。从那里我希望玩家能够运行他们用来下载文件的Jar,它会启动一个启动器。从启动器,他们将能够按下开始游戏按钮,它将运行游戏或玩家应用程序数据中的其他Jar。我还希望玩家能够点击一个按钮,在线检查更新,如果有更新,下载Jar并将其放入玩家的appdata中。

快速总结:

  • 如何制作一个可以下载另一个jar的jar
  • 我如何制作一个按钮来运行另一个罐子
  • 我如何制作一个按钮来检查更新并安装它们

我用netbeans制作我的软件!

谢谢你的帮助!

发射器

在你的应用程序(你分发的应用程序)中,如果某个jar文件在你程序的文件夹中,你可以简单地包含一个小的测试例程。如果有,转到可以运行另一个jar文件的部分,如果没有下载

下载文件

看看关于如何通过Java下载文件的另一个SO问题。我测试了第一个答案,它下载了一个currencies.csv文件。这只是胡言乱语,但它有效。该文件将放在您的项目文件夹中。

但是,下载的文件将逐行写入新文件(作为字符串,因为在本例中它是您下载的文本文件)。下面是一个关于如何通过byte读取和写入文件byte的(非常扩展的)示例,这可能更适合您的情况。

运行另一个jar

既然你已经下载了新的jar文件,你就必须运行它。但这可能会更复杂,因为在每个系统上启动程序(或执行任何其他命令)可能会有所不同。然而,这里还有另一个SO问题。我觉得Runtime的提案足以满足我的口味,但也许你可以找到更好的方法来管理这个罐子。

另一个方案

但也许还有另一种方法,你不必下载一个完整的可运行的jar文件。在其他程序中,这些问题通常由库来解决。

因此,您可以通过将游戏分为多个部分来编写游戏(例如,每个级别都有另一个jar库)。要运行游戏,您必须拥有lib文件夹中的所有jar文件。然后,您的启动器将首先运行例程来检测是否存在所有文件,并在必要时下载丢失的jar。

多库版本也可以帮助您更新程序。这样,你的玩家就不必每次有新的更新时都下载整个游戏,只需下载更改的单个jar文件(你也需要在你的启动器中包含一个测试)

很抱歉,如果我不能提供任何代码,但这是一个相当不错的项目:)但我希望这些链接能让你知道从哪里开始。

您必须使用Java网络启动协议

最新更新