不要问我ocx控件是什么,既然用这个大家都知道它是干嘛的,有问题直接解决问题。下面我一个一个列出问题以及解决方法。
java方面:
- 本人不建议使用java去掉用ocx控件,访问里面的方法,而且导致无法进行跨平台,吃内存。但是不得不使用的java去访问的话。主要采用的是jacob这个东西,然后把相应的文件方法对应的jdk32还是64之中,进行调用。我当时研究了很久,但是一直是找不到扎个ocx,然后去注册表里面找了这个ocx有没有注册过,又看看文件有没有放错,结果检查完了都没有错,才敢去向领导反映,因为刚进公司胆子都比较小吧。最终原来是ocx本身的问题,就很难受当时
- java.lang.UnsatisfiedLinkError: no jacob in java.library.path,解决:需要把对应的dll放到对应目录下
- Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid,解决:检查一下你的注册表里面有没有对应的ocx
- Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: isLogin
Description: 灾难性故障
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:804)
at com.jacob.com.Dispatch.callN(Dispatch.java:440)
at com.jacob.com.Dispatch.call(Dispatch.java:510)
at com.vflow.sms.InitOcxFunctions.isLogin(InitOcxFunctions.java:36)
at com.vflow.test.TestOcx.main(TestOcx.java:14)
原因是: 这个错误是由ActiveX结构设计造成的。
-
An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77c9e3be, pid=1140, tid=4900
#
# Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86)
# Problematic frame:
# C [ntdll.dll+0x2e3be]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
这个应该是jacob版本问题,我开始用的一个jacob报这错误,后下载了新版本的重试就可以了
不能够找到什么什么镜像的,大概就是:can't find monkior(不知道单词有没有拼错),我当时就是这个原因,找了好久,要是你解决不了直接找你们写ocx的人,让他重新搞一个
前端方面:
- 每个写ocx的人,都会给你一个前端的测试页面,让你去测试这个行不行,本地区访问这个页面可能没有太大的问题,都可以用,设置浏览器Internet选项里面的安全——自定义里面关于Activex的全部启用
- 当你写到项目里面可能ocx这个空间里面方法不支持了,所以去设置一下信任站点
如果添加不了将“对该区域中所有的。。。。”别勾选
然后访问的话没什么太大问题,这个东西可能会导致你的页面会卡顿,这时候你就去问一下研究这个ocx控件的人了