我开发了一个 JavaFX 应用程序,我将把它作为 Native Package 分发。以避免 Java 版本低于 7(因此没有 JavaFX)或根本没有 Java 的用户感到头疼。
但是,我还希望能够提供我的应用程序的更新。一种解决方案是应用程序调用 home(它已经通过 XMLRPC 与后端通信)、获取 JAR 并进行 self 更新。不过,我可以看到实际更新过程中的潜在问题(需要构建一个单独的更新程序,但如何更新更新程序?)。
我了解并且喜欢使用 Java Web Start。但是,我不知道这是否适用于 native 包。如果用户已经安装了 Java,它将忽略我捆绑的 JRE。如果他没有 Java...那么,他就无法使用 Java Web Start,对吗?
如何以一种优雅的方式解决这个问题,而又不会对用户体验产生不利影响? (并且最好不会花很长时间来实现)
注意:我正在使用 e(fx)clipse作为构建工具。
最佳答案
If he has no Java... well, he can't use Java Web Start, right?
确实如此,但正如 JWS tag Wiki 中提到的:
Java Rich Internet Applications Deployment Advice. Describes the
deployJava.js
script designed to ensure a suitable minimum version of Java is installed before providing a link to a JWS app. or launching an applet.
请注意,JWS 还提供细粒度版本控制,如 Java Web Start - Runtime Versioning 中详细介绍。 。
也就是说,JWS 可以允许您通过有选择地将 JavaFX 2 API 添加到早期系统来支持早期系统。这是通过使用启动文件中基于版本的资源部分来实现的。
因此,JWS 与 deployJava.js
结合实际上将是该页面讨论的 native 包的“替代方案”。
关于java - 将 Java Web Start 与 JavaFX 的 native bundle 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585368/