java调用ActiveX控件

Java调用ActiveX控件_java调用ActiveX控件import com.jacob.com.*;
Java调用ActiveX控件_java调用ActiveX控件import com.jacob.com.*;
Java调用ActiveX控件_java调用ActiveX控件import com.jacob.activeX.*;
Java调用ActiveX控件_java调用ActiveX控件public class DispatchTest
Java调用ActiveX控件_java调用ActiveX控件_05{
Java调用ActiveX控件_java调用ActiveX控件_06        public static void main(String[] args)
Java调用ActiveX控件_java调用ActiveX控件_07        {
Java调用ActiveX控件_java调用ActiveX控件_06                ActiveXComponent xl = new ActiveXComponent("Word.Application";
Java调用ActiveX控件_java调用ActiveX控件_06                Object xlo = xl.getObject();
Java调用ActiveX控件_java调用ActiveX控件_06                try 
Java调用ActiveX控件_java调用ActiveX控件_11                {
Java调用ActiveX控件_java调用ActiveX控件_06                        System.out.println("version="+xl.getProperty("Version");
Java调用ActiveX控件_java调用ActiveX控件_06//                        for (int i=0; i<100; i++)
Java调用ActiveX控件_java调用ActiveX控件_06
                        System.out.println("version="+Dispatch.get(xl, 1));
Java调用ActiveX控件_java调用ActiveX控件_06//                        System.out.println("version="+Dispatch.get(xlo,"Version");
Java调用ActiveX控件_java调用ActiveX控件_16
                }

Java调用ActiveX控件_java调用ActiveX控件_06                catch (Exception e) 
Java调用ActiveX控件_java调用ActiveX控件_18                {
Java调用ActiveX控件_java调用ActiveX控件_06                        e.printStackTrace();
Java调用ActiveX控件_java调用ActiveX控件_16                }

Java调用ActiveX控件_java调用ActiveX控件_06                finally 
Java调用ActiveX控件_java调用ActiveX控件_22                {
Java调用ActiveX控件_java调用ActiveX控件_23                        xl.invoke("Quit", new Variant[] {});
Java调用ActiveX控件_java调用ActiveX控件_16                }

Java调用ActiveX控件_java调用ActiveX控件_16        }

Java调用ActiveX控件_java调用ActiveX控件_26}
 
Java调用ActiveX控件_java调用ActiveX控件

 

 

另一个例子:
 

在Java调用VB编写的Dll文件

Java调用ActiveX控件_java调用ActiveX控件_28import com.jacob.com.*;
Java调用ActiveX控件_java调用ActiveX控件_28import com.jacob.activeX.*;
Java调用ActiveX控件_java调用ActiveX控件_28public class VbdllCall
Java调用ActiveX控件_java调用ActiveX控件_31{
Java调用ActiveX控件_java调用ActiveX控件_32public static String md5CallVbdll(String str){
Java调用ActiveX控件_java调用ActiveX控件_33String res="";
Java调用ActiveX控件_java调用ActiveX控件_34try {
Java调用ActiveX控件_java调用ActiveX控件_33ActiveXComponent pp = new ActiveXComponent("md5.Class1");
Java调用ActiveX控件_java调用ActiveX控件_33Dispatch myCom = (Dispatch) pp.getObject(); //生成一个对象
Java调用ActiveX控件_java调用ActiveX控件_33
Variant result = Dispatch.call( myCom, "MD5", str) ;
Java调用ActiveX控件_java调用ActiveX控件_33res=result.toString();
Java调用ActiveX控件_java调用ActiveX控件_39}
catch (Exception e) {
Java调用ActiveX控件_java调用ActiveX控件_33res="";
Java调用ActiveX控件_java调用ActiveX控件_33e.printStackTrace();
Java调用ActiveX控件_java调用ActiveX控件_42}

Java调用ActiveX控件_java调用ActiveX控件_33return res;
Java调用ActiveX控件_java调用ActiveX控件_42}

Java调用ActiveX控件_java调用ActiveX控件_45}

 

在公司里,不同的系统使用不能的语言非常正常,我曾经在一个公司就职,原先的博客系统使用asp编写的,里面有很多dll文件,在asp里,可直接调用dll文件,非常简单,但由于系统升级后,都统一使用了Java,那么原先编写的很多模块(封装在dll里的)就都不能用了,但有一个加密算法还非得在客服系统里用到(因为新旧系统要并行运行一段时间,客服系统必须同时能管理新旧两大系统),那么如何在Java中调用VB编写的Dll文件呢?代码如下

 

 这里使用到了Jacob包,有兴趣的读者可以Google一下,深入的了解一下这个Jacob包