20

自从 Adob​​e AIR 发布以来,我想知道为什么 Java Web Start 过去没有获得更多关注,因为对我来说它似乎非常相似,但是 web start 可用的时间要长得多。

主要是因为 Sun 的营销不佳,还是除了需要安装正确的 JVM 之外还有更多的技术问题?您在使用 Web Start 时有过不好的经历吗?如果是,是哪个?在使用 Web Start 分发应用程序时,您有什么建议?

4

6 回答 6

20

在我的公司,我们使用 Java Web Start 来部署 Eclipse RCP 应用程序。设置起来很痛苦,但是一旦到位就可以很好地工作。所以我能提出的唯一建议就是从小处着手,掌握其中的窍门。首先部署一个简单的应用程序。尝试部署一个在没有 JWS 经验的情况下已经制作的完整产品会很快变得复杂。

此外,学习如何将参数传递给 JWS 应用程序对于调试非常宝贵。设置环境变量 JAVAWS_VM_ARGS 允许为 Java 虚拟机设置任意属性。就我而言:

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=4144

当您需要在启动期间检查问题时很有帮助(suspend=y)

我认为接受 Java Web Start 的主要问题是它的设置相对困难。此外,不知何故存在这种不和谐:当您拥有桌面应用程序时,人们希望他们可以双击安装程序。当您拥有一个 Web 应用程序时,人们希望他们可以直接从浏览器中使用它。Java Web Start 不在这里也不在那里...

不过,它广泛用于内部网。

于 2008-09-24T10:03:58.853 回答
7

我在一家银行的内部网工作了 5 年,我的部门已经开发和分发了很多 Java Web Start 应用程序,这些应用程序在世界各地都在使用,我认为 Java Web Start 拥有最好的桌面应用程序(易于开发,丰富的用户界面、客户端机器的处理能力)和互联网应用程序(易于部署和升级)。

我真的很喜欢 Java Web Start

于 2008-09-24T17:48:28.457 回答
4

我曾经在 JWS 做过一个项目,运行起来很痛苦。更糟糕的是,我什至没有处理整个互联网,它只是一个小型应用程序,只有我办公室里的几个人会使用。在配置服务器和帮助他们在客户端机器上设置应用程序时,我不止一次地厌恶地举起双手。

我认为 AIR 现在变得越来越流行(尽管我永远不知道它会走多远),因为它拥有人们真正想要使用的应用程序(命名你最喜欢的 JWS 应用程序......继续,我在等待),比如twhirl。我仍然不是 AIR 工作方式的忠实拥护者,但它比 JWS 好得多。

于 2008-09-24T13:53:25.497 回答
4

以下是mindprob的列表:

  • Java Web Start 应用程序启动速度非常慢。监视器为自己和每个应用程序加载一个新的 JVM。应用程序总是在网络上检查更新、下载和处理一个全新的 JNLP 文件,而不仅仅是检查其日期。但是,如果检查新版本需要 80 秒左右,这意味着您可能遇到了代理服务器问题。启动 javaws.exe 并单击编辑⇒首选项⇒网络设置⇒直接。您不希望 JWS 尝试使用 Google Accelerator 代理。还要检查 IE,单击工具 ⇒ Internet 选项 ⇒ 连接 ⇒ LAN 设置,并确保一切都如您所愿。
  • 更新的下载时间与原始应用程序的下载时间差不多。几乎没有任何巧妙的方法可以使更新变得紧凑。
  • 它需要在 ISP 上运行的自定义代码才能正确提供 jardiff 文件或使用即将到来的 pack200 超压缩。
  • 自首次发布以来,它并没有太大变化。它可能是另一个孤立的产品。这是不应该的。然而,Sun 在一年左右的时间里发布了一个新的 beta 1.2,并且它已被集成到 JRE 中,所以我们将看看它是否会再次升温。他们忽略了一些主要问题,例如证书 OK 隐藏在启动屏幕后面,并且每个 jar 单独要求 ok。即使它是孤儿,也不会发生什么可怕的事情。除非您编写未签名的 JWS 应用程序并使用 JWS 沙箱,否则您的 JWS 应用程序将独立运行。
  • 它需要在 ISP 和客户端浏览器中对 JNLP MIME 类型进行特殊配置。这些都不在开发商的直接控制之下。
  • 如果您有紧急更新,则不能在应用再次运行之前强制安装它。
  • 它需要一个严格的方案来分配客户端机器上的硬盘空间,该方案具有以下属性:
    • 分配的目录名称必须避免与其他供应商的名称冲突。它们应该包含应用程序的主包名称。
    • 名称必须对最终用户有意义。当他需要使用桌面工具查找文件时,它们应该是他可以记住、查找和键入的内容。
    • 该方案必须为每个用户和每个应用程序文件提供一个位置。
    • 一个程序应该可以在任何平台上运行而无需修改来处理查找它的文件。
于 2009-01-09T00:31:40.093 回答
3

Java Web Start 是启动更大的 Java 应用程序的正确方法,因为它允许轻松更新和安装/下载应用程序,并允许比 Java 小程序更好的 UI/UX。

但是,使用具有默认设置的通用浏览器从网页启动 Java Web Start 应用程序存在一些障碍:

  1. Sun/Oracle 未能创建有效的浏览器集成。有关 Google Chrome / Chromium 的示例,请参见http://crbug.com/10877。基本上,Java 插件无法实现所需的 NPAPI 东西来让 Firefox 和 Chrome 可靠地将 MIME 类型转发application/x-java-jnlp-filejavaws/javaws.exe二进制文件。

  2. Sun/Oracle 未能为 Java Web Start.jnlp文件获得真正注册的 MIME 类型。application/x-前缀在技术上意味着草稿或私有。

  3. 当 Java Web Start 处理应用程序下载和启动时,Sun/Oracle 未能使用 URL 方案而不是 MIME 类型。例如,如果不使用诸如https://example.com/app/launch.jnlpJava Web Start 之类的 URL 来启动,javaws://example.com/app/launch.jnlp事情会运行得更顺畅。这是因为在这种情况下,Web 浏览器甚至不需要加载.jnlp文件,它只需将完整的 URL 传递给方案处理程序(这将是javaws二进制文件)。

注意重复的部分(“ Sun/Oracle failed ... ”),您不再需要想知道为什么 Java Web Start 从来没有得到太多关注。最大的缺失部分是获得一个网页链接,以可靠地启动javaws带有给定文件的二进制.jnlp文件。这在技术上应该很容易(只需在javaws安装二进制文件时注册一个新的 URL 方案),但 Sun/Oracle 未能做到这一点。我个人认为整个混乱是由于试图弄乱 MIME 类型而不是简单地使用新的 URL 方案造成的。甚至 MIME 类型的东西也做得很糟糕,因为大声哭泣。

If you still want to use Java Web Start, simply prepare good documentation for correctly configuring the browser to workaround the mess left by Sun/Oracle. The good part is that it's only needs to be done once and it will work for any site that uses Java Web start. The bad part is that usually the browser has never been configured to do the right thing with .jnlp files and you get the blame for using "hard to use technology" because users do not want to configure their browsers just to use your application. Did I mention that it was Sun/Oracle that failed to configure the browser automatically?

于 2012-07-13T06:47:17.947 回答
0

我的经验:
我在 2006 年使用它,用于银行的 Intranet 应用程序。

第一次下载很好,但是当要推送新版本时,jar文件的缓存不起作用,所以新文件没有推送到客户端。

花了一个星期试图解决这个问题,但没有成功。

于 2011-02-04T10:14:09.443 回答