2012-06-29 2 views
1

Я пытаюсь интегрировать AutoIt с Java с помощью Eclipse. Я правильно настроил проект и путь сборки java - возможно;). Проблема заключается в том, что, когда я попытался запустить проект, который я получил, и представлены ниже сообщение об ошибке:Java с библиотекой AutoIt и Jacob

Исключение в потоке «основного» com.jacob.com.ComFailException: Невозможно совместно создать объект на ком .jacob.com.Dispatch.createInstanceNative (родной метод) на com.jacob.com.Dispatch. (Dispatch.java:99) at 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, который описывает, что делать, если затмение возвращает Может» т совместно создать объект, но когда я печатаю в ЦМД

Regasm/многословный/NoLogo/кодовой базы C: \ Яаков-1,17-M2-x64.dll

После этой команды я получаю сообщение об ошибке Regasm: ошибка RA0000: Не удалось загрузить 'C: \ Яаков-1,17-M2-x64.dll', поскольку он не является допустимым .NET сборки

В дополнение I» m работает на Windows 7 x64 с установленной JRE и JDK 6 x64.

ответ

0

Вы используете Windows 7 32 бит в 32-разрядной процессорной машине или Windows 7 64-бит в 64-разрядной машине.

Я попытался регистрации Якоба-1,17-M2-x86.dll в моей Windows 7 32 бит в 32 разрядном процессоре машине с regsvr32 и он успешно работал

, но в моей другой машине с для Windows 7 64 бит в 64-разрядной процессорной машине ни jacob-1.17-M2-x86.dll, ни jacob-1.17-M2-x64.dll не были зарегистрированы.

и мне пришлось использовать AutoItX3.dll, который загружается с последней установкой AutoIT.

Проверьте правильность вашей настройки и попробуйте правильные файлы и их просмотрите.