Rolls-Royce部署Java小程序的方式是什么?

我知道如何使用appletobjectembed标签和JavaScript部署applet,但我追求最佳方法(就最终用户体验而言)。

Sun建议在同一页面上使用applet标记和混合嵌入/对象标记 。

我正在考虑的是以下内容:

  1. 跨浏览器支持。
  2. 如果找到不正确的Java版本,则回退到下载页面(例如,前1.5)。
  3. 加载Java VM启动期间和下载Jar时的页面(理想情况下是带有进度条的自定义初始屏幕)。

之前已经提出过一些问题: 如何部署 , 检查1.6和插件框架 。 这些都没有完全回答我的问题。 我也不考虑网络启动或Java FX。

我目前的解决方案是包含一个为Java 1.1编译的额外的小测试applet。 如果找到Java pre-1.5,则会将页面重定向到失败页面。 如果没有找到Java,页面会要求用户访问java.com。 这可以接受,但是很差,因为它需要一个额外的小程序,并且在VM启动时不显示任何内容。

请参阅PulpCore的解决方案 (许可证: BSD )。

一个例子: Milpa游戏 ……现在,如果我看过它,就是Rolls-Royce applet部署。

并且 – 绝对同意,Sun的Deployment Toolkit非常需要处理禁用的Java – 它似乎完全忽略了这一点。

在经历了整个网络上的旧的和过时的信息之后,看起来实际上有一种非常简单的方式来部署applet – 只需让Sun为您编写正确的标签!

   

对我来说,就像魅力,跨浏览器一样工作,如果没有安装java,可以通过自动重定向来下载页面。

更多信息:

http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit

我发现JavaScript是最好的解决方案。 对于IE,编写一个对象标记并通过classid属性控制JRE的确切最小版本,对于其他所有类型=“application / x-java-applet; version = 1.5”的embed标记都可以正常工作。 两者都使用内置的浏览器机制来处理过时(或完全缺乏)java。

你也可以做一些奇特的事情,比如指定1.5.0作为最低版本,但是将自动下载设置为1.6,这样任何没有java的人都会获得最新的JRE而不是1.5。

我工作的项目已经推出了我们自己的跨平台JS包装器多年,但是使用Java 6更新10 Sun创建了deployJava.js ,旨在为您解决所有这些问题。

applet-fu的+1为我在chrome,FF,IE 6,7,8上工作。 我认为它不会比这更多滚动royce:

http://products.metamolecular.com/2009/06/08/better-applet-deployment-with-applet-fu http://github.com/metamolecular/applet-fu

看起来像一个绝对简单的事情,也没有太多的文档。 但那就是美!

 applet_fu.run( {'width':'550','height':'320'}, { 'archive':'myapplet.jar', 'code':'com/example/MyApplet.class', 'foo':'bar' }, '1.4.2', '' ); 

是的,如果没有找到applet,你可以在html中显示。 1.4.2部分是要检查的最低版本,如果找到较低版本,它仍然不会显示java 。 foo:bar是params的一个例子。

我强烈建议不要使用deployJava.js。 我怀疑它在任何地方都经过测试 看看它的代码:

 s ='';

它没有关闭标签! 而Chrome对此的窒息完全给了我“Uncaught Error:INVALID_STATE_ERR:DOM Exception 11”! 更不用说使用document.write,你必须克服这些Java插件 – deployJava.js的重要补充 。

注册只是告诉这个,因为我花了四个小时完全沮丧处理这一天:(

为了获得最佳的跨浏览器兼容性,您应该遵循SUn的建议,特别是使用混合嵌入/对象标记。 这很丑,但给你最好的报道。

考虑在起始页面上有一个小applet,它告诉浏览器转到真正的applet页面。

在开始页面上,还有一个“你可以在这里获得Java”链接。

根据我的经验,令人讨厌的JavaScript给予讨厌的支持:(

另请注意,Java 6 u 10可以使用Java WebStart来部署Applet。 如果您的用户拥有此版本或更高版本,这可能是更好的用户体验。

嗨,只需使用对象标签。 它是HTML规范的一部分,适用于大多数浏览器。

安装选项的后备只是在标记中写入一些文本。

这是一篇关于这个主题的有用文章:

http://depth-first.com/articles/2008/02/20/demystifying-java-applets-part-1-cross-browser-standards-compliant-pure-html-deployment-using-the-object-tag

问候

好吧,请注意deployJava.js旨在在文档加载时调用。 因此,如果您动态插入applet,在事件发生后,在构建DOM之后,您对这种新的标准方法有点不满意。 我们必须使用object / embed / noembed构造。

编辑 :哦,有人找到了更好的方法,但这需要手动更改SUN的原始deployJava.js,请参阅以下链接: Java Plug-In – deployJava.js的重要补充