反对JavaWebStart?
自从AdobeAIR发布以来,我想知道为什么Java Web Start在过去没有得到更多的关注,因为对我来说,它似乎非常相似,但Web Start的可用时间要长得多
这主要是因为Sun的糟糕营销,还是除了需要安装正确的JVM之外,还有更多的技术问题?您是否有使用Web Start的不良体验?如果是,哪一个?使用Web Start分发应用程序时,您有什么建议
你可以在下面搜索框中键入要查询的问题!
自从AdobeAIR发布以来,我想知道为什么Java Web Start在过去没有得到更多的关注,因为对我来说,它似乎非常相似,但Web Start的可用时间要长得多
这主要是因为Sun的糟糕营销,还是除了需要安装正确的JVM之外,还有更多的技术问题?您是否有使用Web Start的不良体验?如果是,哪一个?使用Web Start分发应用程序时,您有什么建议
# 1 楼答案
我曾经在JWS做过一个项目,开始运行是件痛苦的事。更糟糕的是,我甚至没有处理整个互联网,这是一个小应用程序,只有我办公室的几个人会使用。在配置服务器和帮助他们在客户机上设置应用程序时,我不止一次厌恶地举手
我认为AIR现在越来越受欢迎(尽管我不知道它会走多远),因为它有人们真正想要使用的应用程序(说出你最喜欢的JWS应用程序的名字……请说吧,我正在等待),比如twhirl。我仍然不太喜欢AIR的工作方式,但它比JWS要好得多
# 2 楼答案
以下是来自mindprob的列表:
# 3 楼答案
我在一家银行的内部网工作了5年,我所在的部门开发并发布了很多Java Web Start应用程序,这些应用程序在世界各地都有使用,我认为Java Web Start拥有最好的桌面应用程序(易于开发、丰富的用户界面、客户端机器的处理能力)和互联网应用程序(易于部署和升级)
我真的很喜欢JavaWebStart
# 4 楼答案
Java Web Start是启动更大的Java应用程序的正确方式,因为它允许轻松更新和安装/下载应用程序,并允许比Java小程序更好的UI/UX
然而,在使用带有默认设置的常用浏览器从网页启动Java Web Start应用程序时,存在一些障碍:
Sun/Oracle未能创建有效的浏览器集成。有关谷歌Chrome/Chrome的示例,请参见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-
在技术上意味着草稿或私有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 楼答案
在我的公司,我们使用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 楼答案
我的经历:
我用的是ca 2006,一家银行的内部网应用程序
第一次下载很好, 然而,当想要推出新版本时, jar文件的缓存不起作用, 因此新文件没有被推送到客户端
花了一周时间试图解决这个问题,但没有成功