有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

反对JavaWebStart?

自从AdobeAIR发布以来,我想知道为什么Java Web Start在过去没有得到更多的关注,因为对我来说,它似乎非常相似,但Web Start的可用时间要长得多

这主要是因为Sun的糟糕营销,还是除了需要安装正确的JVM之外,还有更多的技术问题?您是否有使用Web Start的不良体验?如果是,哪一个?使用Web Start分发应用程序时,您有什么建议


共 (6) 个答案

  1. # 1 楼答案

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

    我认为AIR现在越来越受欢迎(尽管我不知道它会走多远),因为它有人们真正想要使用的应用程序(说出你最喜欢的JWS应用程序的名字……请说吧,我正在等待),比如twhirl。我仍然不太喜欢AIR的工作方式,但它比JWS要好得多

  2. # 2 楼答案

    以下是来自mindprob的列表:

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

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

    我真的很喜欢JavaWebStart

  4. # 4 楼答案

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

    然而,在使用带有默认设置的常用浏览器从网页启动Java Web Start应用程序时,存在一些障碍:

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

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

    3. Sun/Oracle未能使用URL方案而不是MIME类型,原因是Java Web Start处理应用程序下载和启动。例如,如果不使用像https://example.com/app/launch.jnlp这样的URL,而是以javaws://example.com/app/launch.jnlp的形式启动Java Web Start,那么事情就会顺利得多。这是因为在这种情况下,web浏览器甚至不需要加载.jnlp文件,它只需将完整的URL传递给scheme处理程序(即javaws二进制文件)

    请注意重复的部分(Sun/Oracle失败了…),您不必再去想为什么Java Web Start从未获得太多关注。缺少的主要部分是获得一个网页链接,以可靠地启动带有给定.jnlp文件的javaws二进制文件。从技术上讲,应该非常容易(只要在安装javaws二进制文件时注册一个新的URL方案),但Sun/Oracle未能做到这一点。我个人认为,整个混乱是因为试图弄乱MIME类型,而不是简单地使用新的URL方案。甚至连哑剧类型的东西都做得很糟糕,因为他们大声喊出来

    如果您仍然想使用Java Web Start,只需准备好正确配置浏览器的良好文档,以解决Sun/Oracle留下的混乱问题。好的方面是,它只需要做一次,而且对于任何使用JavaWebStart的网站都可以。糟糕的是,通常浏览器从未被配置为对.jnlp文件执行正确的操作,会因为使用“难以使用的技术”而受到指责,因为用户不想仅仅为了使用你的应用程序而配置浏览器。我有没有提到是Sun/Oracle未能自动配置浏览器

  5. # 5 楼答案

    在我的公司,我们使用JavaWebStart部署EclipseRCP应用程序。这是一个痛苦的设置,但它的工作非常好,一旦到位。所以我唯一的建议就是从小处着手,掌握窍门。首先部署一个简单的应用程序。试图部署一个完整的产品,而这个产品是在没有JWS经验的情况下开发的,这会很快变得复杂

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

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

    当您需要在启动过程中检查问题时(suspend=y),这将非常有用

    我认为接受JavaWebStart的主要问题是设置起来相对困难。而且,不知何故,也存在这种不协调:当你有一个桌面应用程序时,人们希望安装一个他们可以双击的安装程序。当你有一个web应用程序时,人们希望他们可以直接从浏览器中使用它。Java Web Start既不在这里也不在那里

    不过,它在内部网中被广泛使用

  6. # 6 楼答案

    我的经历:
    我用的是ca 2006,一家银行的内部网应用程序

    第一次下载很好, 然而,当想要推出新版本时, jar文件的缓存不起作用, 因此新文件没有被推送到客户端

    花了一周时间试图解决这个问题,但没有成功