gpt4 book ai didi

java - 将 javafx 打包器用于非 JavaFX 应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:39 25 4
gpt4 key购买 nike

我有一个由多个预构建 JAR 文件组成的 Java 应用程序,我需要为不同的平台部署它们。我最近发现了 javafxpackager,它能够为 Windows、Mac 和 Linux 的 JavaFX2 应用程序创建 native 安装程序/二进制文件。由于我的应用程序是预构建的并且不使用 JavaFX2,所以我没有让打包程序与我的应用程序一起工作。

有没有人有这方面的经验并可以提供帮助?或者是否有其他工具为非 JavaFX2 应用程序提供 javafxpackager 的功能?

最佳答案

你可以做到这一点。

  1. 像您目前所做的那样将您的应用构建到 jar 中。
  2. 使用 -createjar 开关运行 javafxpackager,以在现有 jar 的基础上创建一个新的 jar。新 jar 将包含 list 条目,允许您使用 java -jar app.jar 运行 jar。
  3. 使用 -deploy-native 开关再次运行 javafxpackager,以使用安装程序(self-contained application)将 jar 和 java 运行时打包为 native 应用程序。<

重要的命令是这些:

echo make an executable jar file
$JAVA_HOME/bin/javafxpackager -createjar -srcdir . -appclass start.HelloWorldSwing -srcfiles HelloWorldSwing.jar -noembedlauncher -outdir . -outfile HelloWorld.jar

echo package the jar and java runtime as a native application with installer
$JAVA_HOME/bin/javafxpackager -deploy -srcdir . -srcfiles HelloWorld.jar -outdir . -outfile HelloWorld -appclass start.HelloWorldSwing -native -name HelloWorld

这是一个complete OS X script您可以使用它来构建 Java 应用程序、为其创建 native 应用程序包、安装 native 包并运行已安装的应用程序。该脚本使用 javafxpackager创建 native 应用程序包。安装的应用程序是一个不使用 JavaFX 的 Swing 应用程序(只是为了证明 javafxpackager 不需要只使用 JavaFX 代码)。此外,脚本中的 javafxpackager 命令使用了先前使用 jar 命令创建的 jar,表明 javafxpackager 不需要处理原始类文件,但可以将先前使用其他工具链构建的 jar 作为输入。

您可以为其他操作系统和打包格式创建包,例如Windows 应用程序和 Linux RPM 或 DEB 包。有关如何为每个操作系统自定义安装的详细信息,请参阅 javafxpackager 文档。如果您使用命令行 javafxpackager 工具,那么您将需要为每个目标操作系统创建打包 shell 脚本。如果您使用 javafx ant 打包任务,那么您可以跨操作系统使用相同的打包 ant 脚本。看source for the javafx samples例如 Ensemble 或 SwingInterop,以获取有关使用 ant 打包任务构建 native 包的示例。

要构建 Windows 安装程序,您需要按照 javafxpackager 文档中的说明在您的机器上安装额外的免费软件。要构建 rpm,您需要在您的机器上安装 rpmbuild 打包实用程序。目前无法从一台机器为所有操作系统构建 native 包(您只能构建特定于该机器类型的 native 包)。


请记住,javafxpackager native 包只是众多 Java 应用程序部署选项之一。其他包括 webstart、可执行 jar 文件、第 3 方打包选项和浏览器嵌入式应用程序。选择最适合您的应用程序、用户、开发技能和复杂程度的选项。


我过去使用过的替代工具链非常成功地用于 unix 软件的 native 包(特别是企业的服务器端应用程序),是 mavenrpm maven plugin使用 jenkins 创建的构建部署到 nexus存储库与 nexus yum plugin .此工具链允许您使用 yum 从代码 checkin 到一组可部署的包依赖管理。这个替代工具集确实需要一些复杂的使用,但不涵盖 javafxpackager 所适用的平台范围。

关于java - 将 javafx 打包器用于非 JavaFX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15029555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com