如何在Swing桌面应用程序中部署JavaFX

4
我成功地使用这个教程JavaFX HTMLEditor嵌入到Swing桌面应用程序中,在Eclipse本地运行良好。
我的问题是如何将其部署给我们的客户?Oracle有一个WebStart和Applet部署教程,但我没有看到针对桌面应用程序的信息。
目前,我将JavaFX SDK中的库和二进制文件复制到我的项目中,并在编译分发时包含它们。
/my/application/lib/javafx/lib/javafxrt.jar
/my/application/lib/javafx/bin/[dll:s from JavaFX Runtime]

但这似乎非常奇怪,一定有更好的方法吧?我需要一些帮助。问题是,在Eclipse中进行开发时,我需要将javafxrt.jar复制到类路径中,因为我找不到任何像javafx_home这样可以使用的环境变量。但是当JavaFX加载时,它尝试从相对路径加载dlls,这就是为什么我还将dlls复制到我的项目中的原因。
这对部署来说是有问题的,如果客户端安装了64位JVM(我认为那是行不通的),我不想运送32位JavaFX Runtime。目前我们的客户只运行Windows,所以目前这不是一个问题。
在运行时难道没有一种方法来检查是否安装了JavaFX,如果安装了JavaFX,则可以“动态”获取其路径吗?发送jar文件没有问题,但我担心平台相关的二进制文件。
更新:WebStart不是一个选项,因为我们使用旧的Windows应用程序捆绑/安装应用程序,该应用程序是前身,还没有移植所有功能,因此两个应用程序使用自定义IPC协议进行通信。
感谢您的帮助! 提前致谢。
3个回答

2
使用 Java Web Start 来部署应用程序。JWS 可以简单地将依赖的 Jars 和本地文件添加到应用程序的运行时类路径中,并且可以根据平台对本机文件进行分区下载。
事实上,如果 JavaFX API 没有为客户端应用程序提供一个扩展 JNLP,使得它们可以在自己的 JNLP 启动文件中简单地链接到该扩展,我会感到惊讶。

1
很遗憾,WebStart不是一个选项,请看我的更新。还有其他的想法吗? - Uhlen
"还有其他想法吗?" 无法使用JWS完成更新中的哪一部分,请解释。 - Andrew Thompson
从长远来看,我同意基于JWS的解决方案是好的。但目前我正在寻找一种不需要更改我们的构建/打包/部署过程的解决方案。我们使用InnoSetup捆绑两个应用程序的分发,如果这很重要的话。 - Uhlen
JWS有一个installer-desc元素用于调用本地安装程序,它只是我提供的两个链接之外的一个链接。 - Andrew Thompson

1

0

这就是问题链接中教程所说的内容。问题是“如何将此部署给我们的客户?” - Michael Mrozek
部署很容易,试一试就知道了。 - Ganesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接