- 浏览: 174618 次
- 性别:
- 来自: 郑州
-
文章分类
- 全部博客 (90)
- web前端 (23)
- java (30)
- 其它 (7)
- jbpm4.4 (1)
- 服务器 (2)
- 数据库 (11)
- J2se (1)
- 812202 (0)
- access sql (1)
- 数据库管理工具 (1)
- smartupload (1)
- win7 控制台窗口已停止工作 (1)
- xfire spring web service (1)
- 免安装版本 tomcat 后台启动 设置 (1)
- js 处理日期类型 (1)
- input 自动填充 (1)
- android 连接webservice (2)
- tomcat 直接通过IP访问web项目 (1)
- svn 修改历史日志 (1)
- java 设计模式之适配器 (1)
- android 程序日志记录 (3)
- Win7 电脑突然USB无法识别 方法记录 (1)
- java 实现图片缩略 (1)
- android 更多,刷新 (3)
- access 导入mysql (1)
- java 加密,解密 (0)
- 闪回数据 (1)
- extjs 弹出进度条 (1)
- JSP 绝对路径显示服务器非webapps下的图片或资源 (0)
- html 制作彩信未完 (1)
- android 2.2 api (1)
- java 反射 (1)
- jquery 购物车 (1)
最新评论
-
masuweng:
oracle 迁移 sqlite -
nanjiwubing123:
你好 ,在IE6环境下运行demo,出现dhtmlXTreeO ...
dhtmlxtree 右键菜单的增加,删除,修改 -
李_俊:
呃,那么复杂,果断无视,找一个简单的。
java 源码混淆器 -
shanshan518:
兼容性不好,还有没有精确到秒,楼主
精确到秒的js日期时间选择器 -
mynamelzk:
日期时间选择器非常好用,谢谢你了
日期选择器,中文
[转载]
http://lvqingboy-163-com.iteye.com/blog/769358
Jacob的使用方法:
首先--
1.在工程中导入 jacob.jar 这个包。
2.把 jacob.dll 拷贝到 jdk\bin或者C:\WINDOWS\system32目录下。
以上的两个文件您可以到网上http://danadler.com/jacob/ 下载的1.7的版本
jacob.jar 与 jacob.dll 版本一致。
3.注册ocx控件
l 先把***.ocx控件放入c:\windows\system32 文件夹下
l 在cmd命令行下,输入regsvr32 ***.ocx命令进行注册
Java代码:
1.初始化
ActiveXComponent com = new ActiveXComponent("classid:") ;
Dispatch disp = com.getObject();
2.调用控件里面的方面
2.1调用无参的方法,并返回一个short值
Dispatch.call(disp, "Init").getShort();
2.2调用有一个参数的方法,并返回一个boolean值
Dispatch.call(disp,"Method",new Variant(args)).getBoolean();
调用多个参数依次类推,注意在传递参数前,将Java中的参数转换成Variant。
bug解决:
1.java.lang.UnsatisfiedLinkError: no jacob in java.library.path
原因是:没有把 jacob.dll 拷贝到 jdk\bin或者C:\WINDOWS\system32目录下
2.Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid
原因是:regsvr32 ***.ocx命令进行注册后 ,获取的progid有误;
3.
原因是:
在OCX控件中,重写COleControl.IsInvokeAllowed (DISPID)方法,即在控件的CMyNameCtrl中增加一个方法
BOOL CMyNameCtrl::IsInvokeAllowed (DISPID)
{
return TRUE;
}
用这个方法的理由是:
这个错误是由ActiveX结构设计造成的。
在Ole4.0版本之前,外部程序是可以直接调用OCX中方法的。Ole4.0之后,每次调用控件中的方法,系统会自动检查是否允许调用,即运行COleControl.IsInvokeAllowed (DISPID)
该方法检查控件是否正确的初始化或者是否通过持久存储接口正确加载,如果两个条件有一个满足,即返回TRUE,否则返回FALSE。
当控件在MFC中使用时,很多细节,如初始化,都被过滤了,这样,大多数用户都不会遇到这个问题。但是,当我们从C、C++的dll中调用控件时,不满足上述条件,该方法返回FALSE,这时候再调用任何控件方法,都会出现上述异常。
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: LoadFile
Description: 灾难性故障
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:858)
at com.jacob.com.Dispatch.callN(Dispatch.java:455)
at com.jacob.com.Dispatch.call(Dispatch.java:544)
at com.lv.office.AIPToTest.jacob(AIPToTest.java:24)
at com.lv.office.AIPToTest.main(AIPToTest.java:14)
发表评论
-
Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
2013-07-16 19:15 0转载http://my.oschina.net/sorthW ... -
Spring中加载ApplicationContext.xml文件的方式【转】
2013-03-18 09:34 10641.利用ClassPathXmlApplicationCon ... -
Duplicate name in Manifest: SHA1-Digest
2012-11-27 17:17 4057Duplicate name in Manifest: SHA ... -
JSP 绝对路径显示服务器非webapps下的图片或资源
2012-05-08 19:08 0设置tomcate 虚拟路径 1:在tomcate/ser ... -
java 加密,解密
2012-04-05 17:20 0package test; impor ... -
java 实现图片缩略
2012-02-29 11:02 1025用到的Jar:Thumbnails 查看下载 地址:http ... -
java 设计模式之适配器
2012-02-20 10:48 950转载:http://www.lshine.com/index. ... -
tomcat 直接通过IP访问web项目
2012-02-19 12:28 48071:在开发时访问web项目是这样的http://localho ... -
xfire ibatis spring web service
2011-11-04 14:37 12931:所用的jar xfire-all-1.2.6.ja ... -
xfire spring web service
2011-11-03 18:17 1156转载 http:// ... -
Spring_ibatis_jta多数据源配置
2011-08-12 15:02 2079转载 Spring+iBatis+JOTM实现JTA事 ... -
java.lang.UnsatisfiedLinkError解决方法汇集(转载)
2011-08-04 16:59 18874转载http://blog.csdn.net/niux ... -
Spring事务配置的五种方式
2011-06-28 11:54 1022转载http://developer.51cto.com/ar ... -
JFileChooser使用详解
2011-06-21 10:38 4908JFileChooser 转载 (2010-11-30 23 ... -
java 连接各种数据库 总结
2011-05-24 23:09 4585Oracle8/8i/9i数据库(thin模式) Cl ... -
java 实现某个日期增减天数
2011-05-20 01:46 1373转载:http://blog.csdn.net/zdwzzu2 ... -
dom4j 验证xml dtd
2011-05-08 18:52 1130转载:http://hi.baidu.com/%C0%EE%D ... -
Eclipse 3.WindowBuilder Pro及使用SWT Designer
2011-05-06 11:59 1769转载:http://apps.hi.baidu.com ... -
swing 管理器二
2011-05-06 09:26 936import java.awt.Dimension; imp ... -
swing 布局管理器
2011-05-05 17:53 1191当选择使用JPanel和顶层容器的content pane时 ...
相关推荐
Java通过Jacob调用OCX是一种跨平台的技术,用于在Java应用程序中与Windows特定的ActiveX控件(OCX)交互。这项技术的核心是Jacob库,它是一个Java到COM桥接器,允许Java代码直接调用COM组件,如OCX控件。以下是对这...
本文将详细探讨如何通过JACOB在Java中调用OCX控件,以MSCOMM32.OCX为例进行说明,并提供相应代码示例。 首先,了解JACOB的开发环境配置是关键。在Windows平台上,通常需要64位和32位的DLL文件支持,以适应不同版本...
- `*.java`: 示例Java代码,展示如何使用Jacob调用OCX。 - `*.html`: HTML页面,包含JavaScript调用OCX控件的代码。 - `*.ocx`: 自定义开发的OCX控件文件。 - `readme.txt`: 可能包含运行和配置的指南。 通过深入...
描述中强调了在Java中通过Jacob调用OCX组件时,错误处理的重要性。在使用Jacob桥接技术过程中可能会遇到各种错误,比如COM对象无法加载、方法调用失败、类型转换错误等,需要妥善处理这些异常情况,确保程序的稳定性...
Java调用OCX控件是跨平台编程中的一项技术挑战,因为OCX(Object Linking and Embedding Control)是微软Windows环境下的组件对象模型(COM)控件。然而,通过第三方库如Jacob(Java和COM的桥梁),Java开发者能够在...
Java 调用 OCX 控件是一个常见的需求,...总之,通过Jacob调用OCX控件可以简化跨平台的Java开发工作,但需要注意适配不同操作系统和解决可能出现的异常。在实际项目中,根据需求和团队技术栈选择合适的方法进行集成。
在描述中提到的问题是,当尝试通过JACOB调用OCX控件时,会抛出`com.jacob.com.ComFailException`,异常信息为“灾难性故障”。这可能是因为在Ole4.0之后,COM调用增加了安全检查,即`COleControl.IsInvokeAllowed...
该工程项目演示了Java通过jacob1.17调用ActiveX的基本方法。对于单个的基本类型的数据(byte、short、long、BOOL)等类型的数据,以及有很多字节组成的可见英文字符、汉字等组成的字符串(LPCTSTR、BSTR类型都会进行...
在"javacom"这个压缩包的子文件中,可能包含了使用JNI或JNA进行DLL调用,以及使用JACOB等工具调用OCX控件的Java源码示例。通过分析这些示例,开发者可以学习如何在实际项目中实现类似的集成。 总结起来,这个压缩包...
Java调用DLL和OCX是跨语言交互的一个重要应用场景,主要涉及到Java的本地接口(Java Native Interface,JNI)和第三方库如Jacob项目。Jacob是一个Java和COM(Component Object Model)之间桥梁的开源库,它允许Java...
java调用ocx控件的方法,jacob技术调用ocx控件的步骤、流程,java项目调用具体代码,java调用ocx控件参数传递,jacob调用ocx控件常见bug解决办法,并且附上了java调用word控件的demo代码
使用这些文件时,开发者需要将JAR添加到Java项目的类路径中,并根据操作系统选择相应的JNI库,然后就可以在Java代码中通过Jacob的API来调用OCX和DLL了。 总的来说,Jacob是Java开发者处理.NET世界的一个强大工具,...
3. **编写代码**: 使用JACOB时,首先需要加载COM组件,然后通过Java对象来调用OCX控件的方法。例如,你可以使用`ActiveXComponent`类创建一个OCX实例,然后调用其方法,就像操作Java对象一样。 ```java import ...
在 Java 中调用 OCX 控件有多种方法,例如 JNI(Java Native Interface)、Jawin 和 Jacob。JNI 需要开发者自行完成大量工作,相对复杂,不建议初学者使用。Jawin 的编程风格接近 Windows API,与 Java 语言特性有...
以下是使用Jacob调用OCX的基本步骤: 1. 引入Jacob库:首先,需要将`jacob-x.x.x.jar`文件添加到项目的类路径中,x.x.x表示Jacob的版本号,如1.20、1.19或1.17。 2. 创建`com.jacob.com.ComThread`实例:Jacob使用...
调用jacob dll内的方法 比如:Dispatch java就通过LibraryLoader和Dispatch h Dispatch cpp建立联系 从而建立起java到jacob dll到jni的之间的联系 LSH 调用Microsoft MediaPlayer等 )">JACOB里的总共有两个包:...
《使用Jacob库在Java中调用OCX控件详解》 在Java开发中,有时我们需要与Windows系统的组件进行交互,例如使用ActiveX控件(OCX)。这时,一个强大的工具——Jacob(Java to COM Bridge)就能派上用场。Jacob项目...
4. 使用JACOB提供的API,通过Java代码调用OCX控件的方法和属性。 例如,如果你想要通过JACOB操作Microsoft Word,你可以创建一个`ActiveXComponent`对象,然后调用其`createInstance`方法来实例化Word应用,再...
调用jacob dll内的方法 比如:Dispatch java就通过LibraryLoader和Dispatch h Dispatch cpp建立联系 从而建立起java到jacob dll到jni的之间的联系 LSH 调用Microsoft MediaPlayer等 )">JACOB里的总共有两个包:...
通过Java调用OCX控件使用Jacob非常方便,Java编程风格,需要了解的知识比较少。