为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX-它真的可以部署在浏览器中吗?

/ 猿问

JavaFX-它真的可以部署在浏览器中吗?

慕粉4167745 2019-11-14 10:47:12

去年,我对JavaFX进行了一些研究,甚至使用它构建了一些基本的桌面应用程序。


它被描述为用于创建RIA(Rich Internet Application)。


http://en.wikipedia.org/wiki/Javafx


但是它真的可以通过Web浏览器进行部署吗?我只通过可执行的JAR文件部署了它。


通过网络浏览器部署有多容易?它行得通吗?有人对此有经验吗?


http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm


查看完整描述

3 回答

?
蛊毒传说

我鼓励对这个问题感兴趣的读者阅读以下Oracle白皮书:


Java客户端路线图更新

上面的文件概述了Oracle在相关技术(JavaFX / Swing / AWT / Applets / WebStart)上的官方立场,打算支持这些技术的日期以及打算过渡到与开源技术分离的开源开发项目的技术。 JDK和JRE。


Java 9更新,2017年10月


根据Java 9发行说明:


JDK 9中已弃用Java Applet和WebStart功能,包括Applet API,Java插件,Java Applet Viewer,JNLP和Java Web Start(包括javaws工具),并将在以后的版本中将其删除。


因此,对于Java 9+,只有使用过时的技术才能在使用Java插件的浏览器中部署JavaFX。Oracle在Java 9发行说明的另一部分中进行了说明:


在Oracle的JDK 9构建中不推荐使用Java插件和相关的applet技术。尽管这些技术仍在JDK 9中可用,但将来的发行版中将考虑从Oracle JDK和JRE中删除这些技术。嵌入在网页中的Applet和JavaFX应用程序需要Java插件才能运行。考虑将这些类型的应用程序重写为Java Web Start或独立的应用程序。


注意:Java Web Start并不是真正的替代品,因为它也已弃用(无论如何,它与嵌入并呈现在浏览器页面中的应用程序不同)。


作为提供类似功能的替代方案,请考虑使用jpro之类的东西,它可以在没有Java插件的浏览器中部署JavaFX应用程序(jpro目前仅处于封闭测试版,因此截至2017年10月,它不是一个可行的解决方案,但也许在某天)未来...)。


目前,我建议部署JavaFX应用程序的最佳方法是在浏览器外部运行的独立应用程序。


Java 7和8的先前答案


JavaFx-它真的可以部署在浏览器中吗?


是的,可以部署JavaFX应用程序,使其在Web浏览器托管的html网页中运行。


允许这种情况发生的技术是Java Plugin。该插件当前是基于NPAPI的浏览器插件解决方案。Java插件随Oracle Java 7 Runtime Standard Environment一起提供。


并非所有浏览器都受支持,只有JavaFX支持的配置页面上列出的浏览器受支持。


通过网络浏览器部署有多容易?


在Web浏览器中部署JavaFX项目的最简单方法是:


在NetBeans中创建一个新的JavaFX项目。

开发一个简单的HelloWorld App。

请遵循有关部署第一个JavaFX应用程序的说明。

这并不困难(我认为)。


或者,按照有关部署JavaFX应用程序的详细参考说明进行操作(或使用第三方工具)。对于许多项目,使用NetBeans IDE以外的工具执行打包是一种更好的方法。但是,通常让NetBeans IDE为您处理部署打包任务会更容易。


接下来的内容与回答原始问题无关,但提供了一些对此评论的意见中要求的观点和信息。


一些忠告


在浏览器中部署Java有一些陷阱。我鼓励您对这个问题进行自己的Google研究。


在我看来,基于当前的JavaFX 2.x部署模型,对于大多数需要使用浏览器作为主要运行时容器的应用程序类型,使用JavaFX是不合适的解决方案。


检查您的应用程序的部署和运行时要求。根据您的要求以及对基于JavaFX浏览器的执行模型的了解,确定使用JavaFX技术的基于浏览器的部署是否是您的应用程序的正确机制。


浏览器嵌入式JavaFX应用程序的一些潜在困难


一些重要的浏览器(例如Internet Explorer 10,iOS Safari和即将推出的Desktop Chrome)不允许使用Java浏览器插件当前使用的NPAPI执行插件=>有些目标用户可能无法使用您的应用程序。


使用浏览器嵌入式应用程序时,您无法完全控制应用程序的运行时运行时间(浏览器+ Java运行时+插件界面)=>首次安装时正在运行的应用程序可能会在更新这些应用程序后停止运行运行时组件。


部署替代方案


如果基于浏览器的部署模型不适合您的应用程序,则可以使用其他方法来部署JavaFX应用程序(例如WebStart,独立jar和自包含应用程序)。


查看完整回答
反对 回复 2019-11-14
?
一只斗牛犬

JavaFX-它真的可以部署在浏览器中吗?


没有了,不会再有了。


就像答案中给出的那样,答案曾经是肯定的,尽管即使是在2013年撰写该说明时,也仍然存在。但是,在2016年,答案是否定的,不是。现代浏览器基本上不再支持NPAPI(Firefox支持Java,但直到年底才支持),并且Java插件需要NPAPI。


查看完整回答
反对 回复 2019-11-14
?
饮歌长啸

我在这里偶然找到解决方案。我的Web项目中缺少的内容。


我必须将其添加到web.xml文件:


 <mime-mapping>

    <extension>jnlp</extension>

    <mime-type>application/x-java-jnlp-file</mime-type>

</mime-mapping>


查看完整回答
反对 回复 2019-11-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信