Sikuli UnsatisfiedLinkError при использовании sikuli-script.jar

Я на Windows 7 32bit, Java JRE6 31 установлен и использую Sikuli X 1.0rc3. Я хочу запустить тест с sikuli-script.jar следующим образом:

java -jar c:\sikuli\sikuli-script.jar test.sikuli

Все, что я получаю, это сообщение об ошибке:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError:C:\sikuli\libs\VisionProxy.dll: Can't find dependent libraries

Я установил все необходимые переменные окружения, поэтому мой PATH выглядит так:

PATH=...;C:\sikuli\libs;C:\Program Files\Java\jre6\bin
SIKULI_HOME=C:\sikuli

Я могу использовать IDE и запускать там тесты и т. Д. Но только если я использую Sikuli-IDE.exe sikuli-ide.bat а также sikuli-ide.jar тоже не работает Всегда с одной и той же ошибкой сверху. Поэтому я думаю, что в процессе сборки файла.exe они добавили немного магии, но я не могу понять, что это такое.

У кого-нибудь есть похожая проблема? Или даже решение?


Обновить

Как я писал ниже, он работает из коробки с моим новым компьютером.:D Но, возможно, мое решение может кому-то помочь.

Команда Sikuli использует Launch4J для создания Sikuli-IDE.exe вне sikuli-ide.jar, Они используют этот файл конфигурации. Я немного изменил его и создал Sikuli-script.exe, Это было довольно просто, но я потерял файл конфигурации, к сожалению.

Надеюсь, я смогу помочь!

2 ответа

Решение
  1. Вы должны использовать 32-битную версию JRE (я использую jre-7u4-windows-i586.exe)
  2. Загрузите Sikuli IDE для Windows (я использую "Sikuli X r930", портативная версия)
  3. Распакуйте его и скопируйте файлы в папку вашего проекта (я переименовал его в "sikuli-ide", проверьте изображение htt+p:https://stackru.com/images/91f194d5d2fa453396f3ec29f463b41320388f4d.png)
  4. Добавьте sikuli-script.jar к ссылочным библиотекам ("Проект"> "Свойства"> "Путь сборки Java"> "Библиотеки", проверьте изображение ).
  5. Установите переменные среды PATH и SIKULI_HOME ("Выполнить"> "Выполнить настройки"> "Среда", проверьте изображение )
  6. Ты готов к работе;)

Согласно документам

Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

Что вам нужно сделать, это использовать эту команду:

-Djava.library.path=pathToDLL

Который добавит вашу DLL, которая отсутствует.

Другие вопросы по тегам