什么是劳斯莱斯的方式来部署的Java小程序? [关闭](What is the Rolls-Ro

2019-06-23 21:26发布

我知道如何使用部署一个applet appletobjectembed标签和JavaScript ,但最好的方法(以最终用户体验方面)之后我。

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

我所考虑的是以下几点:

  1. 跨浏览器支持。
  2. 如果不正确的Java版本被发现后退到下载页面(如预1.5)。
  3. 为Java VM载入页面启动期和而罐下载(理想的是自定义开机画面与进度条)。

之前的问题已经问: 如何部署 , 检查1.6和插件框架 。 这些都不完全回答我的问题。 我也是不考虑网络开始或者Java FX。

我目前的解决方案是包含一个额外的小试小程序编译为Java 1.1。 如果你的Java 1.5之前发现它重定向页面到失败页面。 如果没有找到的Java页面要求用户访问java.com。 这工作可以接受,但可怜的,因为它需要一个额外的小程序,并在VM开始不显示任何内容。

Answer 1:

见PulpCore的解决方案 (许可证: BSD )。

举个例子: 在米邦塔游戏 ......现在,这是劳斯莱斯applet的部署,如果我见过它。

和 - 绝对同意,Sun的部署工具包迫切需要处理禁用Java的 - 它似乎忽略完全,目前。



Answer 2:

与旧的和过时的信息都在网上很多挣扎后,好像确实有部署小程序一个非常简单的方法 - 只要让孙写入正确的标签为您服务!

<script src="http://java.com/js/deployJava.js"></script>
<script>
  var attributes = {
    code:'java2d.Java2DemoApplet.class',
    archive:'Java2Demo.jar',
    width:710, 
    height:540
  };
  var parameters = {
    fontSize:16
  };
  var version = '1.6' ; // whichever minimum version you want to target, null works also
  deployJava.runApplet(attributes, parameters, version);
</script>

工作就像一个魅力,跨浏览器的,对我来说,具有自动重定向如果Java的未安装到下载页面。

这里更多的信息:

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



Answer 3:

我找到的JavaScript是最好的解决方案。 对于IE,写入一个对象标记,并通过控制所述JRE的确切最低版本classid属性 ,其他一切类型= embed标签“应用程序/ x-Java的小程序;版本= 1.5”工作得很好。 两者都使用内置的浏览器机制与过时的(或完全缺乏)的Java应对。

你也可以像指定1.5.0作为最低版本花哨的东西,但设置自动下载到1.6这样不带Java的人获得最新的JRE,而不是1.5。

我工作的项目已经推出我们自己的跨平台JS包装了很多年,但与Java 6 Update 10的太阳创建deployJava.js旨在解决所有这些问题给你。



Answer 4:

+1汇集的小程序福为我工作对铬,FF,IE 6,7,8。 我不认为它可以得到更多的劳斯莱斯比这个位置:

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',
  '<img src="/no-java.png" />'
);

是的这就是正确的,你可以在HTML巴掌显示,如果没有找到该小程序。 1.4.2部分,检查是否低版本发现它仍然会显示没有Java的最低版本 。 FOO:棒是则params的一个例子。



Answer 5:

我会强烈反对deployJava.js。 我怀疑这是在任何地方进行测试。 只要看看它的代码:

s = '<param name="' + parameter + '" value="' + 
                parameters[parameter] + '">';

它没有关闭标签! 和Chrome扼流圈这完全给我“未捕获错误:INVALID_STATE_ERR:DOM异常11”! 更不用说使用文件撰写的,你有这样的东西来克服Java插件-重要补充deployJava.js 。

注册只是告诉这一点,因为我花了完整的挫折4小时处理这个前些天:(



Answer 6:

为了获得最佳的跨浏览器兼容,你应该遵循Sun的建议,特别是使用混合嵌入/对象标签。 这是丑陋的,但给你最佳的覆盖范围。



Answer 7:

考虑具有起始页面,告诉浏览器转到真正的小应用程序页面上的applet小。

在开始页面,也有“你可以在这里得到Java”的链接。

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

还要注意的是Java 6的ü10可以使用Java Webstart的部署小程序。 如果您的用户有这样或更高版本,这可能是一个更好的用户体验。



Answer 8:

嗨只使用对象标记。 这是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

问候



Answer 9:

好了,要知道,deployJava.js被设计为在文件加载时被调用。 所以,如果你动态插入的小程序,在事件,DOM已建成之后,你有点运气了这个新的标准方法。 我们不得不使用对象/嵌入/ NOEMBED结构。

编辑 :哦,有人发现了这个更好的方法,但这需要SUN的原始deployJava.js的手动更改,请参见下面的链接: Java插件-重要补充deployJava.js



文章来源: What is the Rolls-Royce way to deploy a Java applet? [closed]