如何构建/部署Java程序,以便任何人都可以在没有IDE或命令行的情况下打开它?

时间:2014-06-02 08:32:26

标签: java ide

我刚刚用Java构建了一个游戏,我希望它可以在任何其他计算机上打开,而无需使用IDE或命令行或类似的东西。基本上,我希望它就像你从互联网上下载并开始播放的那些电脑游戏。

我很抱歉,如果这是一个愚蠢的问题(或一个不可能的问题),但英语是我的第二语言,我不知道任何其他方式来表达它。基本上,我已经非常擅长制作视频游戏了,而且我对我的游戏做得很好,但我不知道如何制作游戏,所以游戏可以在没有IDE的情况下运行。也就是说,我希望我的小弟弟能够双击一个图标,这将导致游戏启动。

现在,只是从逻辑上接近这个,我假设游戏将运行的任何计算机都需要下载Java(如JDK)或其他东西,我就可以了。我只是希望能够给那些不会说英语或阅读英语的人一个简单的图标来双击并玩游戏。

如果没有一些行业级开发人员这是不可能的,请告诉我,因为我知道一些较大的游戏,他们使用自己的语言版本来使游戏工作。我只想知道像我这样的人是否可以这样做,如果是的话,怎么做。谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

您需要构建an executable jar file。如果安装了Java运行时,双击它通常会启动程序。

请注意,对于此解决方案,您必须将所有第三方库打包到jar中,这样您才能拥有一个文件。但通常它是最简单的解决方案。

另一种方法是通过Java web start使程序可用。在这种情况下,您可以单击超链接,您安装的JRE将下载您的程序和所有打包的库,并在本地启动。优点是每次有人运行程序时都会识别并下载程序更新。缺点是您必须自己托管Web Start文件。

答案 1 :(得分:1)

您正在寻找"runnable jar"。创建jar时,使用清单文件说明主类是什么(使用main方法的那个)。看起来像这样:

例如,假设您的游戏在包myniftygame中实施,而main的类是GameMain

清单文件(这里我称之为manifest.txt)将是:

Main-Class: myniftygame.GameMain

然后要构建jar,您可以使用IDE或构建脚本中的工具,或者从myniftygame目录的父目录中的命令行使用:

jar cfm MyNiftyGame.jar manifest.txt myniftygame/*.class

(斜杠在Windows上反斜杠。)

然后,在安装了JRE的任何现代操作系统中,双击.jar文件或使其成为快捷方式的目标等,将使运行时打开jar,查看清单并调用myniftygame.GameMain.main方法。

答案 2 :(得分:1)

创建一个可运行的jar或者更好地使用Launch4j之类的可执行包装器。可执行包装器确实提供了标准Windows安装程序之类的功能,如果尚未安装JDK / JRE,则会提示您安装JDK / JRE,或者甚至可以捆绑JRE。