我正在构建一个JavaFX应用程序,并通过JavaFX-Gradle-plugin使用JavaFX打包工具。我正在生成具有此配置的各种启动器:
jfx {
mainClass = "tech.dashman.dashman.ConfiguratorApp"
vendor = "Dashman"
appName = "Dashman"
nativeReleaseVersion = "1.0.0"
secondaryLaunchers = [
[
appName : "Dashman Renderer",
mainClass: "tech.dashman.dashman.RendererApp",
needMenu : true
],
[
appName : "Dashman Displayer",
mainClass: "tech.dashman.dashman.DisplayerApp",
needMenu : true
],
[
appName : "Dashman Screensaver",
mainClass: "tech.dashman.dashman.WinScreensaverApp",
needMenu : false
]
]
}
但最后一个,要成为一个合适的Windows屏幕保护程序,它需要.scr
扩展名而不是.exe
。如何使用该名称生成它或在生成安装文件之前重命名它?
答案 0 :(得分:2)
开箱即用你的请求确实是“不可能的”#34;但是有一个解决方案和一些解释。
OracleJDK / OpenJDK有一些非常令人困惑的方式将所有工具捆绑在一起(我仍然在努力使我的进度与JDK9兼容,但这主要是因为缺少了这个项目的业余时间)。内部javapackager-libs包含一些所谓的" bundler",它主要用于准备正确的jfx-jar,生成所有必需的安装程序创建文件并复制本机启动程序(exe文件)用正确的名字到正确的地方。这有很多限制:installer-creation-file包含很多硬编码的东西,包括文件扩展名和这些东西。
我已经创建了一些用于创建OWN捆绑器的小型示例项目,您需要为此重新实现: https://github.com/javafx-maven-plugin/javafx-maven-plugin/tree/master/src/it/23-simple-custom-bundler
您需要从此文件中复制粘贴一些内容: http://hg.openjdk.java.net/openjfx/8u-dev/rt/file/bb53ab0b66a0/modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinExeBundler.java
请仔细查看使用过的模板,该模板位于resources-folder: http://hg.openjdk.java.net/openjfx/8u-dev/rt/file/bb53ab0b66a0/modules/fxpackager/src/main/resources/com/oracle/tools/packager/windows/template.iss#l42
请关注这些文件的许可证,我不能提供法律建议,只是在这里传播我的想法。
免责声明:我是javafx-gradle-plugin的创建者