Java Web Start(JNLP)优于Java Applet

您认为针对Java Applet的Java Web Start项目的优点/缺点是什么? 我们试图弄清楚我们应该为新应用程序使用什么类型。 我们已经开发了一个桌面应用程序(JAR),我们试图让每台安装了Java的机器都可以使用它,而无需安装它。

有什么想法吗?

  1. Applet /浏览器/ JRE交互问题。 如果你不知道我的意思,甚至没有一个墨水(从丢失的头发),然后部署小程序将是一个陡峭的学习曲线。
  2. 浏览器为此交易带来了什么? 如果答案是JS交互性,与现有的基于HTML的Web应用程序集成,或者其他一些相关的东西,很多。 如果没有,那么问问自己部署应用程序的优势。 真的包裹在浏览器窗口中了吗?
  3. JWS Jar缓存和更新更可靠(如果需要,可以在程序控制下进行)。
  4. AppletContext为applet提供了一些与环境交互的能力,但JNLP API超出了AC可以实现的范围(主要是)。
  5. 一般可用性。 对于您的用例,这些可能是也可能不是问题。
    1. 一个自由浮动的JWS部署应用程序。 在浏览器关闭时不会关闭,并且不会在选项卡更改时出现焦点丢失。
    2. 如果每个带有控件的3个小程序都嵌入到带有链接的1页中,那么焦点是什么? 由于Sun从不打算指定应该发生什么(根据他们),因此随着时间的推移,JRE的情况会有所不同。 现在,JRE通常会抓住applet的焦点。 如果是这样,通常不可能使用键盘(单独)来访问网页中的链接和其他可聚焦元素。
    3. 调整桌面应用程序的大小要容易得多。
    4. 桌面应用。 (带有启动画面,带图标的桌面快捷键等)可以看起来更专业。

当然,应该提到线条变得模糊:

  1. 自JWS推出以来,它可以启动applet
  2. 自插件2架构JRE以来,JWS可以启动仍然嵌入网页的applet。

..我们试图制作可用于安装了Java的每台机器,而无需安装它。

我会把“不需要安装”的要求放在一边,因为总有时间的流逝和更新插件的需要。 在该注释中,使用deployJava.js来处理JRE最小版本检查。 在检查最小Java可用之后,该脚本将嵌入applet或编写指向JNLP启动文件的链接。

也可以看看

Stack Overflow信息。 标签页面:

  • Java Web Start
  • JNLP
  • 小程序

从6u10开始,显着的差异在于出现在(并且能够与网页交互)的小程序中(可能打开不一定与浏览器窗口很好地交互的窗口)和与Web浏览器分离的WebStart应用程序。 WebStart应用程序将自动获得自己的进程,从内存使用的角度来看,这可能是一个重要的热启动成本。 从6u10开始,Applet可以访问javax.jnlp.*

我认为网站开始是您应该使用的。 据我所知,它允许你启动完整的java应用程序。

JNLP可以(并且在某些情况下应该)与applet一起使用。 刚刚完成了对用户文件系统进行读写的applet的集成。

applet的优点显而易见 – 无需在客户端计算机上安装。

缺点:

  • 不再在Chrome中工作了;

  • 需要额外配置 – 每个jar的清单文件必须包含

      Permission: all-permissions 

    线。