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