java调用ActiveX控件

java调用ActiveX控件_javaimport com.jacob.com.*;
java调用ActiveX控件_java
import com.jacob.com.*;
java调用ActiveX控件_java
import com.jacob.activeX.*;
java调用ActiveX控件_java
public
class DispatchTest
java调用ActiveX控件_java_05
{
java调用ActiveX控件_activeX_06
public
static
void
main(String[] args)
java调用ActiveX控件_activeX_07
{
java调用ActiveX控件_activeX_06
ActiveXComponent xl =
new
ActiveXComponent("Word.Application";
java调用ActiveX控件_activeX_06
Object xlo = xl.getObject();
java调用ActiveX控件_activeX_06
try

java调用ActiveX控件_activeX_11
{
java调用ActiveX控件_activeX_06
System.out.println("version="+xl.getProperty("Version");
java调用ActiveX控件_activeX_06
// for (int i=0; i<100; i++)

java调用ActiveX控件_activeX_06
System.out.println("version="+Dispatch.get(xl, 1));
java调用ActiveX控件_activeX_06
// System.out.println("version="+Dispatch.get(xlo,"Version");

java调用ActiveX控件_java_16
}

java调用ActiveX控件_activeX_06 catch (Exception e)
java调用ActiveX控件_java_18
{
java调用ActiveX控件_activeX_06
e.printStackTrace();
java调用ActiveX控件_java_16
}

java调用ActiveX控件_activeX_06
finally

java调用ActiveX控件_java_22
{
java调用ActiveX控件_java_23
xl.invoke("Quit",
new
Variant[]
{}
);
java调用ActiveX控件_java_16
}

java调用ActiveX控件_java_16
}

java调用ActiveX控件_java_26}

java调用ActiveX控件_java

 

 

另一个例子:
 

在Java调用VB编写的Dll文件

java调用ActiveX控件_javaimport com.jacob.com.*;
java调用ActiveX控件_java
import com.jacob.activeX.*;
java调用ActiveX控件_java
public
class VbdllCall
java调用ActiveX控件_activeX_31
{
java调用ActiveX控件_activeX_32public
static
String md5CallVbdll(String str)
{
java调用ActiveX控件_activeX_06
String res="";
java调用ActiveX控件_activeX_34
try
{
java调用ActiveX控件_activeX_06
ActiveXComponent pp =
new
ActiveXComponent("md5.Class1");
java调用ActiveX控件_activeX_06
Dispatch myCom = (Dispatch) pp.getObject();
//生成一个对象

java调用ActiveX控件_activeX_06
Variant result = Dispatch.call( myCom, "MD5", str) ;
java调用ActiveX控件_activeX_06
res=result.toString();
java调用ActiveX控件_java_39
}
catch (Exception e) {
java调用ActiveX控件_activeX_06
res="";
java调用ActiveX控件_activeX_06
e.printStackTrace();
java调用ActiveX控件_java_16
}

java调用ActiveX控件_activeX_06
return
res;
java调用ActiveX控件_java_16
}

java调用ActiveX控件_java_26}

 

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

 

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