制作独立的Java EXE文件

时间:2014-10-17 00:25:53

标签: java camera libgdx

我现在是一名高中生,我找到了一个名为FBLA的俱乐部的游戏编程比赛。我对比赛有几个问题,所以我给他们发了电子邮件。

我之前在计算机科学堆栈交换上发了一篇文章,您可以在其中查看here

现在收到问题的反馈后,有人评论说我应该在这个网站上发布我的下一个问题。

<小时/> 我的问题是,我如何能够将Java JAR文件与本机库打包在一起,然后从中创建一个EXE,这样它就会独立存在?

在我的理论中,我必须创建jar,并在人们在他们的机器上安装java时将所需的本机文件放入该JAR文件中,然后我可以使用FatJar或JSmooth等程序。

如果我错了,或者我怎么能更多地了解罐子的运行方式,那将会有很大帮助。

<小时/> 2014年11月8日更新
我终于回过头来搞乱它了,我下载了Launch4j。我设置并使用它完成所有操作,并创建一个可执行文件,其中包含所有java的核心本机文件。我卸载了所有处理java的程序,当我去运行它时,它仍然需要java。

再次陈述我需要发生的事情:
即使在法官的计算机上没有安装任何版本的Java,可执行文件也能够运行。

3 个答案:

答案 0 :(得分:3)

我建议您使用launch4j。 http://launch4j.sourceforge.net

我已将它用于一些较大的项目,并且效果非常好。

它可以将jar,依赖项甚至JRE封装到可执行文件的窗口中。它有一个GUI,或者您可以从命令行运行。

答案 1 :(得分:0)

Checkout Packr,由libGDX团队创建:https://github.com/libgdx/packr

答案 2 :(得分:0)

要使jar可执行,您可以在jar的清单文件中指定应用程序的主类,它可能需要的任何额外jar文件等等:

Main-Class: MyAppMain
Class-Path: MyLib.jar

然后使用Java SDK中的jar实用程序打包类和资源文件,指定m选项和清单文件的名称:

jar cvfm MyApp.jar MyApp.mf *.class *.gif

这将导致MyApp.jar的创建。现在,如果你输入

java -jar MyApp.jar

Java启动程序将从MyApp.jar读取清单,将该文件 MyLib.jar放在类路径上,并从类MyAppMain调用main方法。< / p>

现在,如果您的Java应用程序需要本机库,您还需要指定指向包含这些目录的目录的java.library.path属性:

java -Djava.library.path=.\bin -jar MyApp.jar

有关更多信息和替代解决方案,请参阅my article