我设法使用此JavaFX HTMLEditor将this tutorial嵌入到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 Runtime(我认为这不起作用)。目前我们的客户只运行Windows,所以这不是问题。
运行时是否有办法检查是否安装了JavaFX,如果是,那么“动态”获取它的路径?运送jar文件没问题,但我担心平台依赖的二进制文件。
更新:WebStart不是一个选项,因为我们将应用程序与旧版Windows应用程序捆绑/安装,而不是所有功能都已移植,因此两个应用程序与定制IPC进行通信协议
任何帮助表示赞赏! 提前谢谢。
答案 0 :(得分:2)
使用Java Web Start部署应用。 JWS可以很容易地添加依赖的Jars&本机到应用程序的运行时类路径,并可以按平台对本机的下载进行分区。
事实上,如果JavaFX API尚未提供客户端应用程序的扩展JNLP,我会感到惊讶。可以直接链接到他们自己的JNLP启动文件。
答案 1 :(得分:1)
使用here所述的新JavaFX ant任务。工作得很好。
编辑:另见本机包装:https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx
答案 2 :(得分:0)
您可以使用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