IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Java technology  >

浏览带有最新JAVA技术的applet

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

孔竞飞南京东南大学

2001 年 5 月 21 日

众所周知,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开发者而言最简单方便的方法就是:

  1. 用平时一般的<applet........></applet>标签写好待发布网页。
  2. 用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 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款