java插件~~~

mickeylm 2006-05-09 03:10:07
各位大虾,请问对应于IE的ActiveX构件技术的Java插件怎么实现阿?我想在登录首页jsp里嵌入applet,当客户端计算机登录时没有java虚拟机环境则,提示下载java虚拟机,然后从我提供的连接里直接下载,就像上网的计算机直接从sun网站上下载jdk一样。我搜到了一篇文档,可是因水平有限,没弄明白,请教大家了,谢谢~~

下面是搜到的文档内容:
1.Java插件技术

  Java插件技术(Java Plug-in technology)是一个神奇的设计,它架起了时下流行的浏览器(包括Internet Explorer,下面简称IE,Netscape Navigator,下面简称NN以及Mozilla)与Java平台之间的桥梁。也就是说,只需要一个浏览器,它不必内置Java虚拟机(比如与Windows XP捆绑销售的IE 6),也不必特意安装Java运行环境,在打开包含Java Applet的网页时,只要按照浏览器提示安装这个Java插件后便能任意运行Applet了,而这个安装过程与安装Macromedia Flash、3721等插件一样简单。

  要知道,Java插件技术与我们上回咖啡馆中介绍的运行Applet的方法有着本质上的区别。

  在上回Java咖啡馆中,我向大家介绍了Applet编写过程,以及在IE中运行Applet的方法。回忆一下,我们是通过在HTML网页中嵌入<applet>标签实现的。实际上,如果你的系统中已经安装Java运行时环境时,当浏览器遇到<applet>标签时,浏览器便会启动Java虚拟机,从网上下载Applet的class文件后执行它。这种方法有两个明显缺点:第一,如果系统中如果没有Java运行时环境,浏览器便会名正言顺地怠工,拒绝执行Applet;第二,如果系统中的Java运行时环境版本过低,而Applet又使用了新版本中的新技术,这也将导致Applet运行不正常。

  而Java插件技术可以很好解决这两个问题。本质上,Java插件技术是借助浏览器的插件机制给客户端安装或更新Java运行时环境的技术。目前流行的浏览器都有插件机制,比如Mozilla、NN的plug-in技术,IE的ActiveX构件技术。当这些浏览器遇到网页中Java插件标签时,会自动连接到Sun公司的服务器下载或者更新Java运行时环境,然后可以运行Applet程序了。省却了用户自行安装Java运行时环境的不便,这真是一个漂亮的实现。

2.通过Java插件技术调用Applet

  Java插件技术不能依靠<applet>标签调用Applet了,你必须像调用其他NN的插件或者IE的ActiveX构件一样调用Java插件。

  还是拿例子来说明一下。我们原先的sample.htm网页是这样调用Applet的:

<applet code="NewsApplet.class" codebase="." width=480 height=384>
<param name="from" value="Prince Charming">
<param name="to" value="Cinderella">
</applet>


  而对应于IE的ActiveX构件技术的Java插件,需要这么写:

<object classid="clsiD:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-Windows-i586.cab#Version=1,5,0,0"
width=480 height=384>
<param name="code" value="NewsApplet.class">
<param name = "type" value = "application/x-java-applet;jpi-version=1.5">
<param name="from" value="Prince Charming">
<param name="to" value="Cinderella">
</object>

偶不明白classid是怎么得出来的;codebase指的是sun官方网站的下载地址还是我web服务器的下载目录??怎么做呀?再次多谢各位大虾了!!!!
...全文
1564 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickeylm 2006-05-11
  • 打赏
  • 举报
回复
怎么没人啊?
jspfans 2006-05-11
  • 打赏
  • 举报
回复
我没做过,帮顶吧!!
mickeylm 2006-05-11
  • 打赏
  • 举报
回复
看来是没人作过了~~
syjava 2006-05-10
  • 打赏
  • 举报
回复
xx
mickeylm 2006-05-10
  • 打赏
  • 举报
回复
jinstall-1_5_0-windows-i586.cab和1.5.0-b64.xml都下载下来了,可是这个修改xml都改哪些阿??多谢大虾们指点!!!
下面是1.5.0-b64.xml:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>

<java-update>

<information version="1.0" xml:lang="en">
<title>Java 2 Runtime Environment, v1.5.0-b64</title>
<description>This is 1.5.0-b64</description>
<url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/jre-1_5_0-windows-i586-iftw.exe</url>
<msi-url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/</msi-url>
<options></options>
</information>

<information version="1.0" xml:lang="ja">
<title>Java 2 Runtime Environment, v1.5.0-b64</title>
<description>This is 1.5.0-b64.</description>
<url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/jre-1_5_0-windows-i586-iftw.exe</url>
<msi-url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/</msi-url>
<options></options>
</information>

<filelist>

<file>
<name>jre-1_5_0-windows-i586-iftw.exe</name>
<platform>windows-i586-jre</platform>
<bundleid>9852</bundleid>
</file>

<file>
<name>ja150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9826</bundleid>
</file>

<file>
<name>jb150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9827</bundleid>
</file>

<file>
<name>jc150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9828</bundleid>
</file>

<file>
<name>je150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9829</bundleid>
</file>

<file>
<name>jm150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9830</bundleid>
</file>

<file>
<name>jo150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9831</bundleid>
</file>

<file>
<name>jp150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9832</bundleid>
</file>

<file>
<name>jz150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9843</bundleid>
</file>

<file>
<name>jre1.5.0-iftw.msi</name>
<platform>windows-i586-jre</platform>
<url>http://jdl.sun.com/update/1.5.0/jre1.5.0-b64.msi</url>
</file>

<file>
<name>jre1.5.0.msi</name>
<platform>windows-i586-jre</platform>
<bundleid>9833</bundleid>
</file>

<file>
<name>jre1028.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9834</bundleid>
</file>

<file>
<name>jre1031.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9835</bundleid>
</file>

<file>
<name>jre1034.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9836</bundleid>
</file>

<file>
<name>jre1036.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9837</bundleid>
</file>

<file>
<name>jre1040.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9838</bundleid>
</file>

<file>
<name>jre1041.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9839</bundleid>
</file>

<file>
<name>jre1042.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9840</bundleid>
</file>

<file>
<name>jre1053.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9841</bundleid>
</file>

<file>
<name>jre2052.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9842</bundleid>
</file>

<file>
<name>jdk-1_5_0-windows-i586-iftw.exe</name>
<platform>windows-i586-sdk</platform>
<bundleid>9867</bundleid>
</file>

<file>
<name>ja150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9854</bundleid>
</file>

<file>
<name>jb150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9855</bundleid>
</file>

<file>
<name>jc150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9856</bundleid>
</file>

<file>
<name>je150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9859</bundleid>
</file>

<file>
<name>jo150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9860</bundleid>
</file>

<file>
<name>sd150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9861</bundleid>
</file>

<file>
<name>sj150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9862</bundleid>
</file>

<file>
<name>sp150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9863</bundleid>
</file>

<file>
<name>ss150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9864</bundleid>
</file>

<file>
<name>st150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9865</bundleid>
</file>

<file>
<name>sz150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9866</bundleid>
</file>

<file>
<name>jdk1.5.0-iftw.msi</name>
<platform>windows-i586-sdk</platform>
<url>http://jdl.sun.com/update/1.5.0/jdk1.5.0-b64.msi</url>
</file>

<file>
<name>jdk1.5.0.msi</name>
<platform>windows-i586-sdk</platform>
<bundleid>9857</bundleid>
</file>

<file>
<name>jdk1041.MST</name>
<platform>windows-i586-sdk</platform>
<bundleid>9858</bundleid>
</file>

</filelist>

</java-update>
mickeylm 2006-05-10
  • 打赏
  • 举报
回复
jinstall-1_5_0-windows-i586.cab和1.5.0-b64.xml都下载下来了,可是这个修改xml都改哪些阿??多谢大虾们指点!!!
下面是1.5.0-b64.xml:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>

<java-update>

<information version="1.0" xml:lang="en">
<title>Java 2 Runtime Environment, v1.5.0-b64</title>
<description>This is 1.5.0-b64</description>
<url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/jre-1_5_0-windows-i586-iftw.exe</url>
<msi-url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/</msi-url>
<options></options>
</information>

<information version="1.0" xml:lang="ja">
<title>Java 2 Runtime Environment, v1.5.0-b64</title>
<description>This is 1.5.0-b64.</description>
<url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/jre-1_5_0-windows-i586-iftw.exe</url>
<msi-url>http://jdl.sun.com/webapps/download/GetFile/1.5.0-b64/windows-i586-jre/</msi-url>
<options></options>
</information>

<filelist>

<file>
<name>jre-1_5_0-windows-i586-iftw.exe</name>
<platform>windows-i586-jre</platform>
<bundleid>9852</bundleid>
</file>

<file>
<name>ja150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9826</bundleid>
</file>

<file>
<name>jb150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9827</bundleid>
</file>

<file>
<name>jc150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9828</bundleid>
</file>

<file>
<name>je150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9829</bundleid>
</file>

<file>
<name>jm150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9830</bundleid>
</file>

<file>
<name>jo150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9831</bundleid>
</file>

<file>
<name>jp150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9832</bundleid>
</file>

<file>
<name>jz150000.cab</name>
<platform>windows-i586-jre</platform>
<bundleid>9843</bundleid>
</file>

<file>
<name>jre1.5.0-iftw.msi</name>
<platform>windows-i586-jre</platform>
<url>http://jdl.sun.com/update/1.5.0/jre1.5.0-b64.msi</url>
</file>

<file>
<name>jre1.5.0.msi</name>
<platform>windows-i586-jre</platform>
<bundleid>9833</bundleid>
</file>

<file>
<name>jre1028.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9834</bundleid>
</file>

<file>
<name>jre1031.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9835</bundleid>
</file>

<file>
<name>jre1034.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9836</bundleid>
</file>

<file>
<name>jre1036.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9837</bundleid>
</file>

<file>
<name>jre1040.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9838</bundleid>
</file>

<file>
<name>jre1041.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9839</bundleid>
</file>

<file>
<name>jre1042.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9840</bundleid>
</file>

<file>
<name>jre1053.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9841</bundleid>
</file>

<file>
<name>jre2052.MST</name>
<platform>windows-i586-jre</platform>
<bundleid>9842</bundleid>
</file>

<file>
<name>jdk-1_5_0-windows-i586-iftw.exe</name>
<platform>windows-i586-sdk</platform>
<bundleid>9867</bundleid>
</file>

<file>
<name>ja150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9854</bundleid>
</file>

<file>
<name>jb150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9855</bundleid>
</file>

<file>
<name>jc150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9856</bundleid>
</file>

<file>
<name>je150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9859</bundleid>
</file>

<file>
<name>jo150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9860</bundleid>
</file>

<file>
<name>sd150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9861</bundleid>
</file>

<file>
<name>sj150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9862</bundleid>
</file>

<file>
<name>sp150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9863</bundleid>
</file>

<file>
<name>ss150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9864</bundleid>
</file>

<file>
<name>st150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9865</bundleid>
</file>

<file>
<name>sz150000.cab</name>
<platform>windows-i586-sdk</platform>
<bundleid>9866</bundleid>
</file>

<file>
<name>jdk1.5.0-iftw.msi</name>
<platform>windows-i586-sdk</platform>
<url>http://jdl.sun.com/update/1.5.0/jdk1.5.0-b64.msi</url>
</file>

<file>
<name>jdk1.5.0.msi</name>
<platform>windows-i586-sdk</platform>
<bundleid>9857</bundleid>
</file>

<file>
<name>jdk1041.MST</name>
<platform>windows-i586-sdk</platform>
<bundleid>9858</bundleid>
</file>

</filelist>

</java-update>
mickeylm 2006-05-10
  • 打赏
  • 举报
回复
我的Applet是在jsp而非html文件中调用而且Web服务器所在的局域网不能直接访问Sun网站!jinstall-1_5_0-windows-i586.cab从哪儿下载?多谢各位大虾指点~~
xylwqwtd 2006-05-10
  • 打赏
  • 举报
回复
xuexi
mickeylm 2006-05-10
  • 打赏
  • 举报
回复
多谢liuyes(采飞扬)大虾:)我试下~~
mickeylm 2006-05-10
  • 打赏
  • 举报
回复
把下载的jinstall-1_5_0-windows-i586.cab和1.5.0-b64.xml作相应的修改并放到我的局域网服务器中的下载目录中,我按如下写法插入到jsp后,在没有java虚拟机的客户端的计算机上用ie登录时提示安装jinstall-1_5_0-windows-i586.cab,可是点击确定后不继续执行安装,就停止了。请问各位高手帮忙~~~


<OBJECT
classid =
"clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"

codebase =
"http://192.168.1.101/upload/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"
>
<PARAM NAME = CODE VALUE = "LoginApplet.class" >
<PARAM NAME = CODEBASE VALUE = "http://192.168.1.101/" >
<PARAM NAME = "type" VALUE = "application/x-java-applet;version=1.5">
<PARAM NAME = "scriptable" VALUE = "false">
<COMMENT>
<EMBED
type = "application/x-java-applet;version=1.5"
CODE = "LoginApplet.class"
JAVA_CODEBASE = "http://192.168.1.101/"
scriptable = false
pluginspage =
"http://192.168.1.101/index-h.jsp?DengLuRenYuanID=1&ZUTAIQUANXIAN=1&TONGJIQUANXIAN=1&SHUJUWEIHUQUANXIAN=1&DengLuFlag=1&sIP=192.168.1.101">
<NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
ruanjiantaotao 2006-05-10
  • 打赏
  • 举报
回复
关注~
aqu0616 2006-05-09
  • 打赏
  • 举报
回复
晕,我用的是TouchNet Browser 浏览器,换成IE试了一下,果然好使!:)不好意思
aqu0616 2006-05-09
  • 打赏
  • 举报
回复
可以找找别的是怎么实现的,比如FLASH的ACTIVE的cab文件是怎么写的!然后搬到JAVA上呗
liuyes 2006-05-09
  • 打赏
  • 举报
回复
给你一个找到的例子,不知道适合不适合


1. <html>
2. <head>
3. <meta http-equiv="Content-Type" content="text/html; charset=GBK">
4. <title>HTML Test Page</title>
5. </head>
6. <body>game.TypeTrainApplet will appear below in a Java enabled browser.
7. <br>
8. <!--"CONVERTED_APPLET"-->
9. <!-- HTML CONVERTER -->
10. <object
11. classid = "clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
12. codebase =
13. "http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"
14. WIDTH = "400" HEIGHT = "400" NAME = "TestApplet" ALIGN = "middle" VSPACE =
15. "0" HSPACE = "0" >
16. <PARAM NAME = CODE VALUE = "game.TypeTrainApplet.class" >
17. <PARAM NAME = CODEBASE VALUE = "." >
18. <PARAM NAME = ARCHIVE VALUE = "game.JAR" >
19. <PARAM NAME = NAME VALUE = "TestApplet" >
20. <param name = "type" value = "application/x-java-applet;jpi-version=1.5">
21. <param name = "scriptable" value = "false">
22. <PARAM NAME = "stepLen" VALUE="2">
23. <PARAM NAME = "stepInterval" VALUE="50">
24. <PARAM NAME = "columnCount" VALUE="10">
25. <PARAM NAME = "generateInterval" VALUE="500">
26.
27. <comment>
28. <embed
29.  type = "application/x-java-applet;jpi-version=1.5" \
30.  CODE = "game.TypeTrainApplet.class" \
31.  JAVA_CODEBASE = "." \
32.  ARCHIVE = "game.JAR" \
33.  NAME = "TestApplet" \
34.  WIDTH = "400" \
35.  HEIGHT = "400" \
36.  ALIGN = "middle" \
37.  VSPACE = "0" \
38.  HSPACE = "0" \
39.  stepLen ="2" \
40.  stepInterval ="50" \
41.  columnCount ="10" \
42.  generateInterval ="500"
43.  scriptable = false
44. pluginspage = "http://java.sun.com/products/plugin/index.html#download">
45. <noembed>
46.
47. </noembed>
48. </embed>
49. </comment>
50. </object>
51.
52. <!--
53. <APPLET CODE = "game.TypeTrainApplet.class" JAVA_CODEBASE = "." ARCHIVE
54. = "game.JAR" WIDTH = "400" HEIGHT = "400" NAME = "TestApplet" ALIGN =
55. "middle" VSPACE = "0" HSPACE = "0">
56. <PARAM NAME = "stepLen" VALUE="2">
57. <PARAM NAME = "stepInterval" VALUE="50">
58. <PARAM NAME = "columnCount" VALUE="10">
59. <PARAM NAME = "generateInterval" VALUE="500">
60. </APPLET>
61. -->
62. <!--"END_CONVERTED_APPLET"-->
63. </body>
64. </html>

  第13行指定了下载JRE插件的地址,如果没有安装这样的版本,将自动下载当前 JRE 1.5 系列的缺省下载版本,如果不能自动安装,则将用户引导到下载页面中,用户可以手工下载JRE,下载页面在第44行指定。

  如果你的Applet最终部署在一个Web服务器中,且Web服务器位于局域网中,则你事先可以将JRE1.5.0下载下来,放置到Web服务器的上下文中,并更改第13行和第44行的路径。

  提示:

  将jinstall-1_5_0-windows-i586.cab下载并放置到自己的Web服务器中,相应更改<object>的codebase属性值,并不会成功自动安装JRE1.5.0,因为jinstall-1_5_0-windows-i586.cab并未包含JRE1.5.0的安装程序,而是通过cab文件中的jinstall-1_5_0.inf文件声明根据http://java.sun.com/update/1.5.0/1.5.0-b64.xml的配置信息,从Sun网站下载后安装。如果你Web服务器所在的局域网不能直接访问Sun网站,安装过程将无法安成。你需要更改cab文件中的jinstall-1_5_0.inf文件,下载并更改1.5.0-b64.xml配置文件才可以使局域网的客户端到你自己的Web服务器指定地址下载。

  如果Applet是在jsp而非html文件中调用,则可以使用<jsp:plugin>标签来引用applet,以使applet以插件方式引用JRE。关于<jsp:plugin>的使用方法,请查看jsp相关书籍。
liuyes 2006-05-09
  • 打赏
  • 举报
回复
http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab

直接用上面的网址就可以下载了啊,怎么会没有?
mickeylm 2006-05-09
  • 打赏
  • 举报
回复
没有啊,搜来搜去就是这篇文章,多了没有。哎~~~~~~~~~
aqu0616 2006-05-09
  • 打赏
  • 举报
回复
首先,非常感谢你的资料,呵呵!
直接访问:http://java.sun.com/update/1.5.0/jinstall-1_5_0-Windows-i586.cab#Version=1,5,0,0"
提示找不到文件,也就是说jinstall-1_5_0-Windows-i586.cab官方并没有提供!
所以,这个地址应该是自己设的!(就是你web服务器的下载目录)
比如:http://www.xxx.com/jinstall-1_5_0-Windows-i586.cab#Version=1,5,0,0
关键是jinstall-1_5_0-Windows-i586.cab应该怎么做,不知道这个文档上有没有提供!
如果提供了,希望你能发上来,我也想了解一下!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧