用友pdm是在java5.0的环境下开发了,所以在高版本的环境下(如java6.0)是无法运行的。而很多电子行业,使用的新版本设计软件、开发软件自带java6.0,所以导致存在java5.0的同时存在java6.0,而用友pdm对java多版本共存很敏感,以至于客户端无法调用java5.0来启动pdm。

首先我们来分析下客户端的工作原理:安装好客户端的一些组件后,打开浏览器,输入pdm服务器的网络地址,打开界面后,点击登录。

登录过程中,实际上是下载ufidapdm_webstart.jnlp这个文件,而.jnlp在安装java5.0以后会关联起来,所以可以直接打开pdm。

然而安装java6.0以后,关联改变为6.0所在目录的javaws.exe。IE默认加载项也是java6.0,这个时候点击登录会提示你下载java5.0来安装,如果直接下载ufidapdm_webstart.jnlp,默认打开程序也是java6.0,这里就发现了问题所在,是系统默认用java6.0打开ufidapdm_webstart.jnlp,而不是用java5.0。

解决方法:

修改注册表文件,将类型jnlp的后缀名默认打开方式改为java5.0所在的目录,下面是注册表内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile]
@="JNLP File"
"EditFlags"=hex:00,00,01,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open]
@="&Launch"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command]
@="\"C:\\Program Files\\Java\\jre1.5.0_22\\bin\\javaws.exe\" \"%1\""

用记事本打开,存为pdm多版本共存补丁.reg,双击导入,导入成功后,输入pdm服务器的网址+ufidapdm_webstart.jnlp,例如http://tsky.cc/ufidapdm_webstart.jnlp,打开这个文件后就可以打开pdm系统了。

后续优化:

在java5.0安装目录里面找到javaws.exe,打开后,创建pdm的桌面快捷方式。如果还是调用java6.0,修改快捷方式里面的路径为java5.0所在的路径,注意空格,如果路径中保护空格,在java5.0的路径首尾加双引号(只是java5.0的路径)

例如:

"C:\Program Files\Java\jre1.5.0_22\bin\javaws.exe" "C:\Users\tskycc\AppData\LocalLow\Sun\Java\Deployment\cache\javaws\http\D192.168.1.254\P8080\AMufidapdm_webstart.jnlp"