繁体   English   中英

如何使用 Java/Eclipse 创建 Windows.exe(独立可执行文件)?

[英]How can I create a Windows .exe (standalone executable) using Java/Eclipse?

我是编程领域的新手。 与 C++ 一起工作了大约 5 个月,并决定开始进入 Java。我使用 Eclipse 作为我的 IDE,显然 Java 用于语言。 我正在尝试编写一个简单的 HelloWorld 应用程序,它可以通过命令提示符可执行文件运行。

在 Visual Studio 中,创建可执行文件似乎相当容易。 我所要做的就是使用下拉箭头并选择发布,然后运行我的构建。 希望能够在命令提示符下编写/运行 Java 的目的是让我能够在 go 之前完全使用 Swing 练习一些语言基础知识。

所以归根结底,创建用 Java 编写的命令提示符.exe 的最简单方法是什么?

提前致谢!

Java本身不允许构建exe ,这会破坏其跨平台的目的。

AFAIK,这些是您的选择:

  1. 制作一个可运行的JAR 如果系统支持并且配置正确,则在GUI中双击JAR将启动应用程序。 另一种选择是编写一个启动程序shell脚本/批处理文件,它将使用适当的参数启动您的JAR

  2. 还有可执行包装器 - 请参阅如何将我的Java程序转换为.exe文件?

另请参阅: 将Java转换为EXE:为什么,何时,何时以及如何

典型的Java程序编译成.jar文件,如果目标机器安装了Java并且Java在其PATH中,则可以像.exe文件一样执行。 从Eclipse中,您可以使用“文件”菜单中的“导出”菜单项。

使用jpackage创建本机安装程序

java 名为jpackage打包工具作为 Java 开发工具包 (JDK) 版本 16 的一部分发布。

该工具与各种平台的本机打包工具(例如WIX用于 Windows, RPMDEB用于 Linux 发行版, DMG用于 Mac)结合使用,允许为 Java 应用程序构建本机安装程序,然后可以作为可执行文件运行。 对于分发,可能只分发应用程序的可执行文件,独立于安装程序(我不知道,我没试过)。

一篇不错的教程风格的博客文章描述了如何使用jpackage工具为 Java 应用程序创建本机 Windows 安装程序:

使用jlinkjdeps自定义运行时映像

打包工具可以(可选)与jlink工具结合使用:

jlink - 将一组模块及其依赖项组装并优化为自定义运行时映像

这允许您为您的应用程序自定义运行时映像,以仅包括您的应用程序代码、java 运行时和第三方库所需的自定义选定模块化部分,而不是分发完整的 java 运行时。

或者,您也可以使用jdeps工具来确定jlink的输入。

关于jdeps + jlink + jpackage + 本地包创建器(例如 wix/rpm/deb/dmg)用法的完整讨论不在 scope 的 StackOverflow 答案中,但如果您搜索,可以在 web 上找到各种资源。

创建独立的.exe而不是安装程序

这可以使用warp-packerjlink创建的图像和应用程序启动器中创建一个 exe 来完成。

第三方工具可以帮助提供解决方案

如果您希望结合使用所有这些工具,事情会变得复杂,我建议您使用第 3 方实用程序或模板来帮助执行此任务。 例如:

  • badass-jlink-plugin文档)->“允许您以最小的努力为模块化应用程序创建自定义运行时图像。它还允许您使用jpackage工具创建应用程序安装程序。”

对于 JavaFX 特定应用程序(因为您的问题有 JavaFX 标签),您可以查看:

  • JPackageScriptFX -> “演示项目如何使用脚本通过 jdeps、jlink 和 jpackage 工具构建独立的、平台特定的可执行文件和其 JavaFX 应用程序的安装程序。”

对于本机移动部署,请参阅 Gluon Mobile

这个问题是 Windows 具体的,但为了完整起见,如果您的目标是在移动设备上部署本机应用程序,那么您可能需要使用第三方解决方案,例如Gluon Mobile


背景原理(不需要的请忽略)

使用jpackage创建本机安装程序可能需要一些工作,那么您为什么要这样做呢?

以下是一些原因:

  1. 当应用程序通过使用jpackage创建的安装程序分发时,该应用程序可以安装在目标系统上,而无需用户手动安装其他依赖项(例如 Java 运行时)。 安装程序将负责确保安装您的应用程序及其所需的任何依赖项。
  2. 该应用程序附带其自己的定制版本 Java 运行时。 这意味着如果用户没有安装 JRE,并且如果他们安装了与您的应用程序不兼容的 JRE 版本,您的应用程序仍将正确运行 function。
  3. 可以使用目标平台的标准操作系统设施安装和卸载应用程序。 这些平台的大多数用户都熟悉这些。

是的,Java 在大多数情况下是跨平台的,但许多用户对此并不关心,相反,他们只是希望他们的应用程序有一个流畅和熟悉的安装(和卸载)体验,而jpackage可以帮助实现这一点。

创建.exe发行版对于Java来说并不常见。 虽然这样的包装器确实存在,但正常的操作模式是创建.jar文件。

要从Eclipse中的Java项目创建.jar文件,请使用file-> export-> java-> Jar文件。 这将创建包含所有类的存档。

在命令提示符下,使用如下调用:

java -cp myapp.jar foo.bar.MyMainClass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM