JavaFX – 它真的可以在浏览器中部署吗?
我在去年对JavaFX进行了一些研究,甚至用它构build了一些基本的桌面应用程序。
它被描述为用于创buildRIA(富互联网应用程序)。
http://en.wikipedia.org/wiki/Javafx
但是真的可以通过networking浏览器来部署吗? 我只通过一个可执行的JAR文件来部署它。
通过networking浏览器部署有多容易? 它工作吗? 有人对此有经验吗?
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm
Java 9,2017年10月更新
根据Java 9发布说明 :
Java Applet和WebStartfunction,包括Applet API,Java插件,Java Applet查看器,JNLP和包括javaws工具在内的Java Web Start都在JDK 9中被弃用,并且将在未来版本中被删除。
因此,对于Java 9+,使用Java插件的JavaFX在浏览器中的部署只能使用不推荐的技术。 Oracle在Java 9发行说明的另一部分中提到 :
在Oracle的JDK 9版本中弃用Java Plug-in和关联的applet技术。 在JDK 9中仍然可用的情况下,这些技术将在未来的版本中考虑从Oracle JDK和JRE中删除。 embedded到网页中的Applets和JavaFX应用程序需要运行Java Plug-in。 考虑将这些types的应用程序重写为Java Web Start或自包含应用程序。
注意:Java Web Start并不是一个真正的替代品,因为它也被弃用(不pipe怎样,它不同于在浏览器页面中embedded和呈现的应用程序)。
作为提供类似function的替代scheme,请考虑类似于jpro ,它在浏览器中部署JavaFX应用程序,而不使用Java插件(jpro目前仅在内部testing版中,因此截至2017年10月,它不是一个可行的解决scheme,但也许在某天未来…)。
现在,我build议部署JavaFX应用程序的最佳方式是在浏览器外运行的自包含应用程序 。
以前的Java 7和8的答案
JavaFx – 它真的可以在浏览器中部署吗?
是的,可以部署JavaFX应用程序,以便它们在Web浏览器托pipe的HTML网页中运行。
允许这种情况发生的技术是Java插件 。 这个插件目前是基于NPAPI的浏览器插件解决scheme。 Java插件随附于Oracle Java 7运行时标准环境 。
并非所有浏览器都受支持,只有在“ JavaFX支持的configuration”页面上列出的浏览器才受支持 。
通过networking浏览器部署有多容易?
在Web浏览器中部署JavaFX项目的最简单方法是:
- 在NetBeans中创build一个新的JavaFX项目 。
- 开发一个简单的HelloWorld应用程序 。
- 按照部署您的第一个JavaFX应用程序的说明 。
这并不难(在我看来)。
或者,按照有关部署JavaFX应用程序的详细参考(或使用第三方工具)的说明进行操作。 对于许多项目,使用除NetBeans IDE以外的工具来执行打包是一个更好的方法。 但是,让NetBeans IDE为您处理部署打包任务通常更容易。
接下来的回答与回答原来的问题无关,但是在回答中提供了一些意见和信息。
一些忠告
在浏览器中部署Java有一些缺陷。 我鼓励你自己做Google的研究。
在我看来,基于当前的JavaFX 2.x部署模型,对于大多数需要浏览器作为主运行时容器的应用程序types,使用JavaFX并不是一个合适的解决scheme。
检查您的应用程序的部署和运行时需求。 根据您的要求以及基于JavaFX浏览器的执行模型的知识,决定使用JavaFX技术的基于浏览器的部署是否是您的应用程序的正确机制。
浏览器embedded式JavaFX应用程序存在一些潜在的困难
一些重要的浏览器(例如Internet Explorer 10 , iOS Safari和即将推出的Chrome浏览器 )不允许使用Java浏览器插件当前使用的NPAPI执行插件=>有些目标用户可能无法使用您的应用程序。
使用浏览器embedded式应用程序,您无法完全控制您的应用程序在其上运行的运行时(浏览器+ Java运行时+插件接口)=>在第一次安装时运行的应用程序可能会在更新完成后停止运行运行时组件。
部署select
如果基于浏览器的部署模型不适合您的应用程序,还可以使用其他方法来部署JavaFX应用程序 (例如WebStart,独立JAR和独立应用程序)。
JavaFX – 它真的可以在浏览器中部署吗?
没有了,不会再有了。
答案曾经是肯定的,就像在这个答案中给出的那样,尽pipe在2013年写这封信的时候也是这样。 但是,在2016年,答案是否定的,不能。 现在的浏览器本质上不再支持NPAPI(Firefox对于Java而言,但是直到年底),并且Java插件需要NPAPI。
截至2016年,您可以使用jpro而无需任何浏览器插件。 它甚至运行在手机上。
我偶然在这里find了解决办法。 我的web项目中缺less什么。
我必须添加到web.xml文件:
<mime-mapping> <extension>jnlp</extension> <mime-type>application/x-java-jnlp-file</mime-type> </mime-mapping>