Java - 下载程序,启动程序和更新程序

时间:2014-02-17 00:19:26

标签: java download launcher

我正在使用Pure Java制作一个非常简单的Java游戏!游戏部分进展顺利。我有一些人正在玩游戏来为我测试它。如果有更新,我会发送电子邮件下载它。整个游戏只是一个直接在桌面上运行的jar文件。这意味着您将整个游戏下载到一个文件中,这需要花费相当多的时间,这不是我想给的第一印象。这让我想到了第一个问题,即如何制作下载程序!我希望玩家下载一个体积小的Jar,然后运行它来下载一个更大的Jar(那个游戏)在appdata中。从那里我希望玩家能够运行他们用来下载文件的Jar,它将启动一个启动器。从发射器开始,他们将能够按下开始游戏按钮,它将在玩家appdata中运行游戏或其他Jar。我还希望玩家能够点击一个按钮来检查在线更新,如果有一个下载Jar并将其放入玩家appdata中。

快速摘要:

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

我使用net bean制作我的软件!

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

启动器

在您的应用程序(您分发的应用程序)中,如果某个jar文件位于程序的文件夹中,则只需包含一个小的测试例程。如果是,那么转到可以运行其他jar文件的部分,如果没有下载它。

下载文件

查看this other SO question如何通过Java下载文件。我测试了第一个答案并下载了currencies.csv文件。这只是胡言乱语,但它确实有效。该文件将放在您的项目文件夹中。

然而,下载的文件将逐行写入新文件(如Strings,因为在此示例中它是您下载的文本文件)。 Here是一个(非常扩展的)示例,说明如何通过byte读取和写入文件byte,这可能更适合您的情况。

运行另一个jar

现在您已经下载了新的jar文件,您必须运行它。但这可能更复杂,因为启动程序(或执行任何其他命令)可能在每个系统上都不同。但是这里有another SO question。我发现Runtime的提案足以满足我的口味,但也许你可以找到更好的方法来运行这个罐子。

另一项提案

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

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

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

很抱歉,如果我无法提供任何代码,但这是一个相当大的项目:)但我希望这些链接可以让您了解从哪里开始。

答案 1 :(得分:0)