我正在尝试使用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上运行。
答案 0 :(得分:0)
我尝试在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。
检查您的配置并尝试正确的文件并查看。