10

我想知道如何将 Java 应用程序打包到 Windows、Linux 和 Mac OS X 的本机二进制文件中。

我知道 Minecraft 会这样做,但我不知道怎么做。这就是我想做的:

  • 从 NetBeans(最好)或 Eclipse 中,自动构建这三个二进制文件。
  • 包括用于 OpenGL 等的本机库。全部。
  • 如果可能的话,混淆我的代码。

如果有某种方法可以模仿 Minecraft 自动更新功能,那将是非常棒的。

那么,是否有任何工具可以为您执行此操作,或者我是否需要编写大量 XML 来完成此操作?

4

5 回答 5

6

要为 Windows 制作本机二进制文件,您可以使用Launch4J 之类的工具。在 OSX 上,您可以使用JarBundler。Minecraft 只是为 Linux 分发 jar 文件。我不知道 Linux 的本机二进制打包程序。

您也可以通过 GCJ 编译您的 Java 代码,但这可能不是您想要的,因为那里存在限制和兼容性问题。像 Launch4j 和 JarBundler 这样的原生打包程序只是简单地包装您的 jar 文件并使用真正的 JRE 来执行它。

至于与 NetBeans 或 Eclipse 集成,您可能必须编写自己的 ant 构建文件,特别是因为解决方案因平台而异。

于 2011-05-03T13:14:19.800 回答
4

如果您使用的是 Java 9,您还可以使用 Java 9 Modularization &jlink来发布一个零依赖的原生应用程序

这里也maven-jlink-plugin有帮助。

于 2018-01-24T20:36:40.553 回答
1

看看GCJBuilder plugin for eclipse。不确定它是否像命令GCJ编译器那样支持交叉编译。

于 2011-05-03T12:55:37.123 回答
0

如果应用程序。有一个 GUI 并且可以从网站分发,查看Java Web Start。JWS 由 Oracle 提供,并在许多其他功能中提供自动更新。

请注意,JWS 使用 Jar 文件,因此无需转换。

于 2011-05-03T13:01:17.193 回答
0

我过去曾为此使用过 JSMooth:http://jsmooth.sourceforge.net/如前所述 ,这个包装器只是寻找一个真正的 JRE 来运行它——它不附带捆绑的 JRE。

于 2011-05-03T13:34:43.730 回答