Java与AutoIt和Jacob库

时间:2012-06-29 07:29:41

标签: java eclipse autoit jacob

我正在尝试使用Eclipse将AutoIt与Java集成。我已经正确配置了项目和java构建路径 - 可能;)。问题是,当我尝试运行我收到的项目时,会出现以下错误:

  

线程“main”中的异常com.jacob.com.ComFailException:无法共同创建对象       at com.jacob.com.Dispatch.createInstanceNative(Native Method)       在com.jacob.com.Dispatch。(Dispatch.java:99)       在com.jacob.activeX.ActiveXComponent。(ActiveXComponent.java:58)       at autoitx4java.AutoItX。(AutoItX.java:181)       在com.mainPackage.windowsGUIHandler.bleble(windowsGUIHandler.java:23)       在com.mainPackage.windowsGUIHandler.main(windowsGUIHandler.java:39)

我的代码中的代码看起来很像(非常简单但足以运行并测试AutoIT是否有效)

package com.mainPackage;

import java.io.File;
import com.jacob.com.LibraryLoader;
import junit.framework.Assert;
import autoitx4java.AutoItX;

public class windowsGUIHandler {

public static void thisIsTestFunction() {
    File file = new File("lib", "jacob-1.17-M2-x64.dll");
    System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
    LibraryLoader.loadJacobLibrary();


    AutoItX x = new AutoItX();
    String notepad = "Untitled - Notepad";
    String testString = "this is a test.";
    x.run("notepad.exe");
    x.winActivate(notepad);
    x.winWaitActive(notepad);
    x.send(testString);
    Assert.assertTrue(x.winExists(notepad, testString));
    x.winClose(notepad, testString);
    x.winWaitActive("Notepad");
    x.send("{ALT}n");
    Assert.assertFalse(x.winExists(notepad, testString));

}

public static void main(String[] args) {
    thisIsTestFunction();
}

}

我进行了一项研究,我发现this article描述了如果eclipse返回无法共同创建对象,当我输入cmd

时该怎么办
  

regasm / verbose / nologo / codebase C:\ jacob-1.17-M2-x64.dll

在此命令之后我收到错误 RegAsm:错误RA0000:无法加载'C:\ jacob-1.17-M2-x64.dll',因为它不是有效的.NET程序集

此外,我在运行JRE和JDK 6 x64的Windows 7 x64上运行。

1 个答案:

答案 0 :(得分:0)

你正在使用吗? Windows 7 32位处理器机器中的32位 或64位计算机中的Windows 7 64位。

我尝试在32位处理器计算机的Windows 7 32位中注册jacob-1.17-M2-x86.dll regsvr32并且它成功运行

但在我的另一台机器上 64位处理器计算机中的Windows 7 64位 jacob-1.17-M2-x86.dll或jacob-1.17-M2-x64.dll都未成功注册。

我不得不使用最新的AutoIT安装下载的AutoItX3.dll。

检查您的配置并尝试正确的文件并查看。