服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

浏览带有最新java技术的applet


内容:

先澄清几个概念
常见的一些问题
一些补充
关于作者


众所周知,sun和ms的一场官司最终有了个很不好的结局:双方分道扬镳了。最倒霉的当然是我们这些java程序员了,一个很不利的一点在于web上的java技术的实现。下面以我尝试在applet中使用java2平台标准版中的最新的swing技术为例,阐述一下相应的入门问题。
先澄清几个概念:
1):jdk和j2sdk:j2sdk包含了java development kit(jdk)、java runtime environment(jre)和java plug-in。原先sun的java软件开发工具包是jdk,现在就称为j2sdk了。jre和plug-in:j2re包含了java plug-in。

sun的java网站上就单独提供j2sdk和jre各种版本的下载,j2sdk是提供给开发java程序所用,应用程序用户是不需要开发工具的。而jre顾名思义是java程序要运行所需要的环境,所谓跨平台就是要各种平台都有一个中间代理,那就是jre。一般采用java技术开发出的软件都得带这个,所以sun就单独提供了jre安装文件,以供java应用程序发布时所用。

2):swing和jfc(java foundation classes)

jfc是早期sun对jdk的功能扩展,不是java的公共规范,swing是其中的一项用户界面扩展技术。最新的java2技术则包含了jfc技术,不需要再扩展了。换句话说,其实就是sun将jfc纳入了java核心类库。原先要用到jfc技术,用户必须在原有的jre前提下再添加jfc,现在少了一步,只需jre了。

3):sun的java实现和ms的java实现

众所周知,java技术是开放的,sun制定规范,各公司可以推出自己的java实现,当然都得遵守sun的规范。java技术发展的开始阶段,ms和sun保持了很好的合作关系,在ie里面采用ms的java vm(虚拟机)支持java applet。但好景不长,双方分手了,最新的ie支持的java版本是1.1.4。另外,netscape navigator也不支持最新的java版本。如何让applet能用到最新的java类库呢?这就是sun推出了它的所谓plug-in技术的原因所在。

言归正传,java2技术的发展日新月异,ie只支持ms的java1.1.4,applet如何才能利用到那些新的核心类库呢?唯一的办法,绕开ie的appet机制(<applet.........</applet>),使用 plug-in,利用ie浏览器必须支持的扩展技术扩展ie功能。所谓的扩展技术也就是ms的 com/activex技术,在网页中这就是<object>标签的目的所在了。顺便说一下,在netscape navigator中plug-in是利用浏览器的插件构架来达到目的的(<embed>目的所在)。plug-in的作用就在于用sun的jre来替代掉浏览器所默认的jre。

明白了以上内容,我们就可以了解为什么带swing的applet网页不能用一般的html标记语言 <applet>来写了,为什么浏览带swing技术的applet要有plug-in才行了。

对applet开发者而言最简单方便的方法就是:

用平时一般的<applet........></applet>标签写好待发布网页。
用sun提供的html converter将待发布网页自动转化成plug-in所能起作用的带有<object>和<embed>标签的网页。此时即可发布了。
如需自己写,参见http://java.sun.com/products/plugin/1.3/docs/。


常见的一些问题:
问:如果要开发带有swing或其他java新技术的applet,要安装什么软件?
答:sun的最新的j2sdk软件,目前最新版本为1.3.1。

问:客户端浏览带swing或其他java新技术的applet,要安装什么软件?
答: 不需特别注意什么,如果第一次浏览带swing或其他java新技术的applet时,会被引导至某站点(缺省为sun的java站点)自行下载安装带有数字签名的jre软件。如果已经安装过,则 plug-in会自行起作用。
注意:jre分美国版及国际版,j2sdk则只有一种,在选择jre时中文用户应选择国际版。

问:如何将引导下载jre的站点改为自己设定的http站点?
答:在要发布的html页中(html converter转化)有“codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#version=1,3,0,0"” 改为自己的即可。比如:“codebase="http://202.119.28.215/javarelated/software/j2re1_3_0-win-i.exe#version=1,3,0,0"”。 “pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"”也类似,只不过这是针对netscape navigator的。
参见http://java.sun.com/products/plugin/1.3/docs/intranet.html。

自己发现的一个大bug: 不过在1.3.0_01及以后的版本里已经改正了。
系统:win2000 professional中文版、internet explorer 5.0。
在1.3.0版本里,无论是装了j2sdk还是jre,控制面板里的plug-in图标点击无法运行,也即plug-in在浏览器里无效。解决方法:在注册表中查找“插件”,改为“plug-in”即可。或安装更高高版本。
用户浏览1.3.0版的applet,去sun的网站下载jre时,如果下载的是jre 1.3.0国际版,则问题同上。如果下载的是jre 1.3.0 美国版,则ie浏览时会自行“没有响应”。

一些补充:
上文并没有提到使用jfc的解决方案,毕竟,jfc只是个临时方案,不得已才使用它。比如在用java applet结合vrml的项目中,如果要用到swing技术,jfc是一种解决方案。当然,这种状况只会是临时的,随着技术的发展,各种web技术将更好的结合在java周围,相信web上的java技术会变得更美。

最后:
由于本人属于java新手,难免会有各种各样的错误,还望大家批评指正,希望以此文作一点贡献而已。这只是个入门篇,比较的浅,毕竟web技术博大精深,java与web未来走向何方?还有待于大家共同探讨。

关于作者
孔竞飞,南京东南大学自动控制系学生,目前在东南大学cims中心从事基于web的3d可视化方面的研究。


--摘自ibm网站
http://www-900.ibm.com/developerworks/cn/java/joy-applet/index.shtml

扫描关注微信公众号