为 浏览器手动安装 JRE Applet

如果次要运行带有 Swing的 Applet,总要安装一次 JDK(从sun download的),有时机器里竟同时又好几个jdk,什么 JBuilder的, Weblogic的,bea server,从sun download的,等等,是不是太多了呢?机器有点乱,其实除了application server 以及其他的 Servlet( EJB)container,如果要单独运行jdk,会提高 服务器的效率(其实小一点的server完全也可以用JBUILDER的自带的jdk,JBUILDER下面的tomcat就是很好的例子)

现在要求运行有swing的applet,要设定Java plugin,和jre,当然你也可以选择安装jre 或jdk ,不过在你的机器上就要有多一个jdk目录了。既然JBUILDER已经带了jdk,那就应该好好利用,现手动设定如下(以juilder9为例):

1、拷贝juilder9下jdk1.4/jre/bin/jpicpl32.cpl,到系统的system32目录,保证控制面板里有java  plugin的图标。
*.cpl是控制面板程序,放在系统目录,会在控制面板里有相应的图标。


2、在注册表下加上(我的juilder9装在E盘)
[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment/1.4.1_02]
"MicroVersion"="1"
"RuntimeLib"="e://JBuilder9//jdk1.4//jre//bin//client//jvm.dll"
"JavaHome"="e://JBuilder9//jdk1.4//jre"

[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.4.1_02]
"UseJava2IExplorer"=dword:00000001
"JavaHome"="e://JBuilder9//jdk1.4//jre"
"HideSystemTrayIcon"=dword:00000000
保证控制面板里的java  plugin双击能够运行。

3、注册NPJPI141_02.dll,在命令行输入 regsvr32  E:/JBuilder9/jdk1.4/jre/bin/NPJPI141_02.dll 保证NPJPI141_02.dll 注册成功。

NPJPI141_02.dll 是一个COM组件,包含三个COM对象,分别为Java Plug-in 1.4.1_02 转向器 和相应Java Runtime Environment 1.4.1_02链接器,classid分别为8AD9C840-044E-11D1-B3E9-00805F499D93,CAFEEFAC-0014 -0001-0002-ABCDEFFEDCBA,CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB

它同通过提供一组com接口使得ie在浏览带有applet的页面时,原来是通过微软的java虚拟机(在system32目录的一个msjava.dll文件),重新转向到sun 的jre环境。

4、因为NPJPI141_02.dll的注册过程,在注册表的相应位置没有正确的设置(NPJPI141_02.dll在注册表的注册文件名为NPJAVA141_02.dll,这可就是最大的错误),所以最后还要手动的修改注册表。

[HKEY_CLASSES_ROOT/CLSID/{8AD9C840-044E-11D1-B3E9-00805F499D93}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//npjpi141_02.dll"


[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{8AD9C840-044E-11D1-B3E9-00805F499D93}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//npjpi141_02.dll"

[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBA}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//NPJPI141_02.dll"

[HKEY_CLASSES_ROOT/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBA}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//NPJPI141_02.dll"


[HKEY_CLASSES_ROOT/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//NPJPI141_02.dll"

[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}/InprocServer32]
@="E://JBuilder9//jdk1.4//jre//bin//NPJPI141_02.dll"

都是文件名称错误,修改NPJPI141_02.dll包含的三个com对象指向正确的文件名。

5、修改msjava.dll转向SUN 的JRE环境。

[HKEY_CLASSES_ROOT/CLSID/{08B0E5C0-4FCB-11CF-AAA5-00401C608501}/TreatAs]
@="{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}"

classid为08B0E5C0-4FCB-11CF-AAA5-00401C608501的com对象被包含在msjava.dll里。是ms java 虚拟机的一部分。

6、最后一步可做可不做,没有的话好像也可以运行。

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/{08B0E5C0-4FCB-11CF-AAA5-00401C608500}]
"KeyFileName"="E://JBuilder9//jdk1.4//jre//bin//ActPanel.dll"

运行控制面板里的java  plugin程序,进行设定,发现ie的选项里详细设定也有了用sun 虚拟机代替ms 的虚拟机的选项。运行swing的applet 和awt的applet 均可实现,任务栏也出现了期待已久咖啡图标,applet 能正常显示。

===========================================================================

[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment/1.5.0_12]
"MicroVersion"="0"
"RuntimeLib"="V://jdk1.5.0_12//jre//bin//client//jvm.dll"
"JavaHome"="V://jdk1.5.0_12//jre"

[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.5.0_12]
"UseJava2IExplorer"=dword:00000001
"JavaHome"="V://jdk1.5.0_12//jre"
"HideSystemTrayIcon"=dword:00000000

[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/1.5.0_12]
"MicroVersion"="0"
"JavaHome"="V://jdk1.5.0_12"


[HKEY_CLASSES_ROOT/CLSID/{8AD9C840-044E-11D1-B3E9-00805F499D93}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{8AD9C840-044E-11D1-B3E9-00805F499D93}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBA}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_CLASSES_ROOT/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBA}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_CLASSES_ROOT/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}/InprocServer32]
@="V://jdk1.5.0_12//jre//bin//NPJPI150_12.dll"

[HKEY_CLASSES_ROOT/CLSID/{08B0E5C0-4FCB-11CF-AAA5-00401C608501}/TreatAs]
@="{CAFEEFAC-0014-0001-0002-ABCDEFFEDCBB}"


==================================================================================
1. 先运行 注册表文件
2. 注册 NPJPI150_12.dll
3. 清空目录 C:/Documents and Settings/Administrator/Application Data/Sun/Java/Deployment


为什么 IE 不能用, 而 Firefox 确能用? 奇怪???

你可能感兴趣的:(Java)