现在要求运行有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
它同通过提供一组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 能正常显示。
===========================================================================