按照@James_D的建议,我实际上使用了jpackage
代替Launch4j
更好的是,它不仅可以创建 exe 文件,而且还可以通过以特定于平台的格式创建本机包来消除用户安装 Java 的需要。
话虽如此,这是有关如何使用 Windows 10 操作系统的小指南jpackage
与 JavaFX 项目。欲了解更多信息,请阅读文档 https://docs.oracle.com/en/java/javase/14/jpackage/packaging-overview.html#GUID-C1027043-587D-418D-8188-EF8F44A4C06A. jpackage
适用于 macOS 和 Linux,但我使用的是 Windows 10,因此该指南是专门针对它的。
- 前往以下链接(官方)并下载JavaFX Windows jmods https://gluonhq.com/products/javafx/;
- For
jpackage
你还需要下载WiX 工具集 https://wixtoolset.org/,然后安装;
- 为您的项目创建一个可运行的 Jar。我发现使用 runnable Jar 而不是普通的 jar 更容易,因为您不必稍后指定主类。这是个人喜好,而不是您必须做的;
- 尝试跑步
jpackage -h
在命令行/Windows PowerShell 中查看是否jpackage
工作中。如果你得到术语“jpackage”未被识别为 cmdlet 的名称,然后打开环境变量 and in 系统变量/路径添加 Java JDK 中 bin 文件夹的位置。一个简单的方法是通过搜索环境在 Windows 搜索栏中,然后选择编辑系统环境变量, then 环境变量...
- 之后你可以运行:
jpackage -t exe --name "Name of app" --app-version 1.0 --input "Location of runnable Jar" --dest "Location where the exe will be created" --main-jar "Name of the runnable Jar, with extention .jar at the end" --icon "Complete location where the icon of the app is .ico" --module-path "Location of jmods folder" --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.base --win-shortcut --win-menu
Example:
jpackage -t exe --name "MyApp" --app-version 1.0 --input "D:\Projects\Jars\" --dest "D:\Projects\Executable" --main-jar "Guide.jar" --icon "D:\Projects\Icons\guide.ico" --module-path "D:\Projects\JavaFX\javafx-jmods-16" --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.base --win-shortcut --win-menu
- 就我而言,我正在使用我的个人安装程序应用程序,所以运行后我正在做什么
jpackage
,是我正在运行它创建的 exe 文件,然后从它创建的文件夹中复制该文件夹中的文件(exe file, app and runtime文件夹)并将它们与我的项目的所有其他必需文件一起粘贴到该位置。这样我就可以测试它,如果它有效,我将继续为其创建安装程序,就像我说的,使用我自己的安装程序应用程序。
该命令有很多可以添加的选项,因此请阅读文档 https://docs.oracle.com/en/java/javase/14/jpackage/packaging-overview.html#GUID-786E15C0-2CE7-4BDF-9B2F-AC1C57249134,以及运行选项的完整列表jpackage -h
.