自从 Adobe AIR 发布以来,我想知道为什么 Java Web Start 过去没有获得更多关注,因为对我来说它似乎非常相似,但是 web start 可用的时间要长得多。
主要是因为 Sun 的营销不佳,还是除了需要安装正确的 JVM 之外还有更多的技术问题?您在使用 Web Start 时有过不好的经历吗?如果是,是哪个?在使用 Web Start 分发应用程序时,您有什么建议?
自从 Adobe AIR 发布以来,我想知道为什么 Java Web Start 过去没有获得更多关注,因为对我来说它似乎非常相似,但是 web start 可用的时间要长得多。
主要是因为 Sun 的营销不佳,还是除了需要安装正确的 JVM 之外还有更多的技术问题?您在使用 Web Start 时有过不好的经历吗?如果是,是哪个?在使用 Web Start 分发应用程序时,您有什么建议?
在我的公司,我们使用 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 不在这里也不在那里...
不过,它广泛用于内部网。
我在一家银行的内部网工作了 5 年,我的部门已经开发和分发了很多 Java Web Start 应用程序,这些应用程序在世界各地都在使用,我认为 Java Web Start 拥有最好的桌面应用程序(易于开发,丰富的用户界面、客户端机器的处理能力)和互联网应用程序(易于部署和升级)。
我真的很喜欢 Java Web Start
我曾经在 JWS 做过一个项目,运行起来很痛苦。更糟糕的是,我什至没有处理整个互联网,它只是一个小型应用程序,只有我办公室里的几个人会使用。在配置服务器和帮助他们在客户端机器上设置应用程序时,我不止一次地厌恶地举起双手。
我认为 AIR 现在变得越来越流行(尽管我永远不知道它会走多远),因为它拥有人们真正想要使用的应用程序(命名你最喜欢的 JWS 应用程序......继续,我在等待),比如twhirl。我仍然不是 AIR 工作方式的忠实拥护者,但它比 JWS 好得多。
以下是mindprob的列表:
Java Web Start 是启动更大的 Java 应用程序的正确方法,因为它允许轻松更新和安装/下载应用程序,并允许比 Java 小程序更好的 UI/UX。
但是,使用具有默认设置的通用浏览器从网页启动 Java Web Start 应用程序存在一些障碍:
Sun/Oracle 未能创建有效的浏览器集成。有关 Google Chrome / Chromium 的示例,请参见http://crbug.com/10877。基本上,Java 插件无法实现所需的 NPAPI 东西来让 Firefox 和 Chrome 可靠地将 MIME 类型转发application/x-java-jnlp-file
到javaws
/javaws.exe
二进制文件。
Sun/Oracle 未能为 Java Web Start.jnlp
文件获得真正注册的 MIME 类型。application/x-
前缀在技术上意味着草稿或私有。
当 Java Web Start 处理应用程序下载和启动时,Sun/Oracle 未能使用 URL 方案而不是 MIME 类型。例如,如果不使用诸如https://example.com/app/launch.jnlp
Java 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?
我的经验:
我在 2006 年使用它,用于银行的 Intranet 应用程序。
第一次下载很好,但是当要推送新版本时,jar文件的缓存不起作用,所以新文件没有推送到客户端。
花了一个星期试图解决这个问题,但没有成功。