我知道如何使用部署一个applet applet
, object
, embed
标签和JavaScript
,但最好的方法(以最终用户体验方面)之后我。
孙建议使用Applet标记和混合嵌入/对象标记在同一页面上。
我所考虑的是以下几点:
- 跨浏览器支持。
- 如果不正确的Java版本被发现后退到下载页面(如预1.5)。
- 为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]