0

我在java中创建了jar文件。它使用一些库文件。所以,我的最终结构是,

  • 例子.jar
    • 库文件

如何将它们转换为单个文件,例如 Windows 的 exe?它也应该在 linux 中运行,例如(.sh 文件 - NetBeans 安装程序)。

4

4 回答 4

3

只需制作一个包含所有库依赖项的 JAR。

  1. 如果 Maven 是您的构建工具,请检查这个 SO question。其他工具(Gradle 等)也有类似的解决方案。

  2. 一些 IDE 也可以做到这一点,例如NetbeansIntelliJ IDEA

当然,请确保您要打包的库具有允许此操作的许可证。

于 2013-01-12T21:41:00.723 回答
2

如果您使用 Netbeans,请检查此项以将所有 jar 合并为一个,现在当您有 1 个 jar 时,您可以使用launch4j创建 exe 。

于 2013-01-12T21:53:31.530 回答
1

尽管这是可能的,但它违反了 Java 的本质。

Java 被设计为一种可移植语言(一次编写,随处运行);您的 .jar 文件包含 Java 字节码,该字节码将由 Java 虚拟机在运行时进行解释;你可以将它复制到任何架构中,它会在那里运行。

.exe 文件实际上包含由处理器直接运行的机器代码特定语言;这不适用于其他架构。

但是,有不同的工具可以满足您的需求,例如JarToExeJSmooth

于 2013-01-12T21:42:40.327 回答
1

你有几个选择:

  • 使用 gcj 之类的东西编译到本机应用程序。但在很多情况下,这不是一个选择(如果你研究一下,你会明白为什么)

  • 有一个修改后的java可执行文件来运行你的 jar

  • 有一个可以用 java 运行你的 jar 的可执行文件

如果您可以合理地假设您的客户端安装了 java,那么只需部署一个可执行 jar 就可以了 - 在大多数桌面操作系统上,java 分发设置为以预期的方式运行可执行 jar(即通过在 Windows 中双击),以及在那些不是的地方——好吧,人们可能会知道什么是 java 以及如何运行 jars。

于 2013-01-12T21:45:39.597 回答