【问题标题】:How to deploy JavaFX in Swing desktop application如何在 Swing 桌面应用程序中部署 JavaFX
【发布时间】:2011-12-10 03:59:49
【问题描述】:

我设法使用 this tutorialJavaFX HTMLEditor 嵌入到 Swing 桌面应用程序中,在 Eclipse 中本地运行一切正常。

我的问题是如何将其部署给我们的客户? Oracle 有一个tutorial for WebStart and Applet deployment,但我没有看到有关桌面应用程序的信息。

目前我将安装的 JavaFX SDK 中的库和二进制文件复制到我的项目中,并在我编译分发时包含它们:

/my/application/lib/javafx/lib/javafxrt.jar
/my/application/lib/javafx/bin/[dll:s from JavaFX Runtime]

但这似乎很奇怪,一定有更好的方法吗?我需要一些帮助。问题是,在 Eclipse 开发期间,我需要在类路径上使用 javafxrt.jar,所以我复制了 jar 文件,因为我看不到任何可以使用的环境变量,例如 javafx_home。但是当 JavaFX 被加载时,它会尝试加载 dll:从相对路径,这就是为什么我也将 dll 复制到我的项目中。

这对于部署来说是有问题的,如果客户端安装了 64 位 JVM(我认为这不起作用),我宁愿不提供 32 位 JavaFX 运行时。目前我们的客户只运行 Windows,所以目前这不是问题。

在运行时是否有办法检查是否安装了 JavaFX,如果是,则“动态”获取它的路径?发送 jar 文件没有问题,但我担心依赖于平台的二进制文件。

更新: WebStart 不是一个选项,因为我们将应用程序与旧的 Windows 应用程序捆绑/安装,该应用程序是前身,并非所有功能都已移植,因此这两个应用程序与定制的 IPC 通信协议。

感谢任何帮助! 提前致谢。

【问题讨论】:

    标签: java swing deployment javafx javafx-2


    【解决方案1】:

    使用Java Web Start 部署应用程序。 JWS 可以轻松地将依赖的 Jars 和 native 添加到应用程序的运行时类路径中,并且可以按平台对 native 的下载进行分区。

    事实上,如果 JavaFX API 还没有为客户端应用程序提供扩展 JNLP,我会感到惊讶。可以简单地链接到他们自己的 JNLP 启动文件中。

    【讨论】:

    • 不幸的是,WebStart 不是一个选项,请参阅我的更新。还有其他想法吗?
    • “还有其他想法吗?”说明使用 JWS 无法完成更新的哪一部分。
    • 从长远来看,我同意基于 JWS 的解决方案会很好。虽然目前我正在寻找一个不改变我们的构建/打包/部署过程的解决方案。如果这很重要,我们会创建与 InnoSetup 捆绑的两个应用程序的分发版。
    • JWS 有一个 installer-desc 元素用于调用本机安装程序,这只是我提供的两个链接之外的一个链接。
    【解决方案2】:

    使用here 中描述的新 JavaFX ant 任务。对我来说效果很好。

    编辑:另见原生包装:https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

    【讨论】:

      【解决方案3】:

      您可以使用 JFXPanel (javafx.embed.swing.JFXPanel) 在 java swing 应用程序中嵌入 JavaFX 组件。 它用于在 java swing 应用程序中嵌入 JavaFX 组件。 了解有关 JFXPanel 的更多信息,请访问 https://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/JFXPanel.html

      【讨论】:

      • 这就是问题中链接的教程所说的。问题是“如何将其部署给我们的客户?”
      • 部署简单,试一试
      猜你喜欢
      • 2018-05-18
      • 2013-06-01
      • 2013-05-17
      • 2010-09-14
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2012-05-22
      相关资源
      最近更新 更多