LibGDX 创建(桌面)平台可运行

LibGDX creating (desktop) platform runnable

我想将可能的项目(游戏)导出到不同的桌面平台。我从 eclipse 中导出它(在 Windows 上)并且我得到了 JAR 文件。在我的机器上我可以启动它,但在其他机器上它不起作用。我猜那里缺少 JRE。

因此,我按照 LibGDX 说明如何在不同平台上进行部署: https://github.com/libgdx/libgdx/wiki/Deploying-your-application

但是当我 运行 那个 packr.jar 应用程序时,我得到以下输出:

D:\packing>java -jar packr.jar windows.json
Output directory 'D:\packing\windows' exists, deleting
Unpacking JRE
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
copying resources
minimizing JRE
unpacking rt.jar
packing rt.jar
Done!

之后我真的得到了我的 exe 文件,包括 jre 目录、我的原始游戏 jar 文件和一些 config.json 文件,但是那个 exe 文件不会 运行。没有失败信息,只是不会 运行。知道这里发生了什么吗?或者还有其他打包jar文件的工具?

我只需要让我的游戏运行能够在桌面平台上使用:Windows、Mac & Linux。

好的,解决了这个问题。

所以我发现如果我从控制台 (cmd) 运行 exe 文件并将输出重定向到文件,我可能会收到一些关于 运行 尝试的错误报告。所以我这样做了:

myapp.exe > log.txt

并获取日志文件:

Loading JVM runtime library ...
Passing VM options ...
  # -Xmx1G
Creating Java VM ...
Error occurred during initialization of VM
Unable to load ZIP library: D:\packing\windows\jre\bin\zip.dll

Zip 文件在那里,但它有问题,所以我用 Java 安装中的文件替换了它(我的更大)。之后我就可以运行 exe文件了。

对于 windows OS 你可以使用像 launch4j 这样的东西,它只是在你的 jar 文件周围放置一个包装器。

它也有能力提供给定的 jre。因此您的用户无需安装。