Невозможно совместно создать объект на com.jacob.com.Dispatch.createInstanceNative (собственный метод)

Я пытаюсь использовать autoit с Java, поэтому я добавил в свой проект jacob jar и autoitX4. Но я получил эту ошибку:

'Exception in thread "main" com.jacob.com.ComFailException: Can't co-create object
    at com.jacob.com.Dispatch.createInstanceNative(Native Method)
    at com.jacob.com.Dispatch.<init>(Dispatch.java:101)
    at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
    at autoitx4java.AutoItX.<init>(AutoItX.java:231)
    at net.java.dev.jna.step2_2.Test.main(Test.java:14)'

Вот мой текущий код:

import java.io.File;
import com.jacob.com.LibraryLoader;
import autoitx4java.AutoItX;
import junit.framework.Assert;
public class Test {
    public static void main(String[] args) {
        File file = new File("./src/test/ressources//jacob-1.17-M2-x64.dll"); // path
        System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
        AutoItX x = new AutoItX();
        String notepad = "Untitled - Notepad";
        String testString = "this is a test.";
        x.run("notepad", "C:/Windows/System32", AutoItX.SW_MAXIMIZE);
        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));
    }
}

может кто-нибудь помочь мне, пожалуйста, я не могу исправить ошибку


person Asma    schedule 19.02.2018    source источник


Ответы (1)


Недавно у меня также была такая же проблема, и я исправил ее с помощью приведенного ниже решения.
Шаг 1. Скачал и переустановил последнюю версию Autoit для 64-разрядной версии. т. е. используя версию «Полная установка AutoIt» по ссылке ниже.

    https://www.autoitscript.com/site/autoit/downloads/

Шаг 2. Скачал последнюю версию Джейкоба по ссылке ниже:

    https://sourceforge.net/projects/jacob-project/

Шаг 3. Разместите файлы .jar и .dll, как показано ниже:

    C:\Program Files\Java\jdk1.8.0_191\bin\Jacob.jar
    C:\Program Files\Java\jdk1.8.0_191\bin\Jacob-1.19-X64.dll

    D:\Eclipse Workspace\ProjectFolder\lib\AutoitX4Java.jar
    D:\Eclipse Workspace\ProjectFolder\lib\Jacob.jar
    D:\Eclipse Workspace\ProjectFolder\lib\Jacob-1.19-X64.dll

    D:\Eclipse Workspace\ProjectFolder\lib\Tools\AutoitX3.dll

Шаг 4. Зарегистрировал AutoItX3.dll через командную строку (откройте командную строку от имени администратора)

c:\Windows\system32> regsvr32 "D:\Eclipse Workspace\ProjectFolder\lib\tools\AutoItX3.dll"

Вот и все!

Согласно моей настройке, путь для jacob dll в коде

File file = new File("lib", jacob-1.18-x64.dll);

Надеюсь это поможет.

person Deepali    schedule 03.11.2018