Answers:
要点是,最终用户不需要安装任何Java JRE,安装程序也不必包含JRE并为用户安装它
您可以使用Java源代码/字节码来编译代码。有适用于Windows和Linux的Excelsior JET(需要许可证)以及适用于Java的GNU编译器。
如果可以在游戏中不包含Java而无需安装Java,则可以将Java Runtime与游戏打包在一起,并在启动游戏之前使用启动脚本将其设置JAVA_HOME
为JRT位置。
编辑:(评论响应)使用第二个选项,您仍然需要使用适用于该平台的Java运行时,针对不同平台的不同版本。
EDIT2: Aslo看到Dmitry的最近评论。
对于Mac,请参阅Oracle文档,其中包含用于Mac的Java应用程序。他们设置了Java 7,以便您可以将运行时捆绑到包含jar文件(.app实际上是被视为可执行文件的文件夹)的应用程序捆绑包中,这是在Mac App Store上分发所必需的。基本上,.app软件包的功能与Eren的JAVA_HOME答案所建议的基本相同,但打包为“本机” Mac应用程序。
要在没有Mac App Store的情况下进行分发,您可以不签名应用程序而逃避,告诉Mountain Lion用户可以通过右键单击(或ctrl + click)应用程序并在他们单击“打开”时绕过Gatekeeper。首先打开应用程序。这仍然会警告他们该应用程序尚未签名,但是无论如何它们都将允许他们打开它,然后允许他们双击该应用程序以进行后续打开。
(旁注:您也可以摆脱Linux风格将外壳程序脚本标记为可执行文件,然后围绕该文件构建一个.app捆绑包。NetBeans在Mac和Linux上可以做到这一点,尽管没有捆绑的JRE / JDK)