Экспорт приложения с помощью Sikuli

У меня проблема с java-библиотекой sikuli. Сначала я загрузил установочную банку sikuli и выполнил ее. Он создал sikuli-java.jar и папку libs (в c: / documents / sikuli). После этого я создал проект в eclipse, добавил банку в путь сборки и написал код. Код работал, когда я запускал его в eclipse. После этого я создал из него работающую банку. Я запустил работающую банку. Он закрылся, когда попал в код сикули.

Я хочу экспортировать приложение в виде исполняемого файла jar и развернуть его без необходимости установки sikuli пользователям. Это вообще возможно?

Также: https://github.com/RaiMan/SikuliX-2014/wiki/Usage-in-Java-programming

take care, that sikulixapi.jar is in the Java classpath of your project

У меня даже нет файла sikulixapi.jar.

=======================================

Возможно, небольшое примечание: я создал sikuli-java.jar с опциями 4 и 6.

редактировать: Кто-нибудь? Приложение отлично работает в eclipse, но когда я экспортирую его как runnable jar и запускаю, как только оно попадает в сикули, оно закрывается. Не срабатывает блок catch, хотя я окружил код catch (Exception ex). Я настроил eclipse следующим образом: https://stackoverflow.com/a/10354759/2815780


person Bosiwow    schedule 10.01.2015    source источник
comment
@RaiMan, ты хоть представляешь, я читал во многих постах, что ты работаешь над сикули.   -  person Bosiwow    schedule 13.01.2015


Ответы (1)


Это RaiMan от SikuliX (http://sikulix.com)

- 1. В настоящее время вы используете 1.0.1. Я рекомендую перейти на версию 1 1.1.0, так как она устанавливается более плавно, особенно в Windows (больше не требуется ввод пути или чего-либо еще). Поскольку вы хотите развернуть свое приложение в системах, в которых не установлен SikuliX, это упростит задачу.

- 2. Если вы хотите запустить приложение в системах, в которых не установлен SikuliX, вам нужно упаковать файл sikulixapi.jar (созданный с помощью настройки для целевой системы) в банку приложения (сделать так называемую толстую банку или убер-банку). или разрешите людям скачать откуда-то готовый sikulixapi.jar и позаботиться о том, чтобы в вашем приложении sikulixapi.jar находился на пути к классу при запуске вашего приложения. Что имеет смысл в вашем случае, зависит от того, как вы хотите опубликовать свое приложение.

- 3. вы говорите: приложение отлично работает в eclipse, но когда я экспортирую его как runnable jar… Внутри Eclipse требуется автомобиль, этот зависимый материал находится на пути к классу. Тем не менее, jar, созданный в рабочей области, является «голым» и требует пути к классу во время выполнения. Есть возможность скопировать зависимый jar в папку lib в рабочей области. Если вы это сделаете, ваша банка будет работать (хотя я не рекомендую этого: банки сикуликса не следует перемещать, а только как-то ссылаться)

- 4. вы говорите: не срабатывает блок catch, хотя я заключил код в catch (Exception ex). Если вы запустите свою банку из командной строки, говоря:

java -jar myapp.jar

он должен аварийно завершить работу с каким-либо несогласованным исключением (скорее всего, "класс не найден")

Как вы уже сделали, вы можете связаться со мной напрямую со ссылкой на этот пост здесь.

person RaiMan    schedule 13.01.2015
comment
во-первых, спасибо за ответ. Скачал сикули 1.1.0. Я запустил настройку, щелкнул только второй вариант и позволил настройке сделать свою работу. Теперь у меня есть папка Libs, папка Lib, папка Downlaod и sikulixapi.jar. Итак, я думаю, мне нужно перетащить sikulixapi в свой проект eclipse и добавить его в путь сборки. Что мне еще делать? Я хочу, чтобы все было в одной большой банке (мой код + библиотеки, поэтому я могу просто сбросить файл и запустить его) Заранее спасибо. - person Bosiwow; 13.01.2015
comment
Я щелкнул правой кнопкой мыши свой проект, удалил все старые библиотеки sikuli и перешел на вкладку librarie. щелкнул добавить внешние JARS и перешел к c: \ ... \ Documents \ sikuli и выбрал sikulixapi.jar. Так что это единственная библиотека, которую я использую сейчас. В моем затмении у меня есть папка, которая теперь называется Refrenced Libraries. Когда я нажимаю на маленькую стрелку рядом с ней, я вижу: sikulixapi.jar c: \ ... \ Documents \ sikuli. Могу ли я теперь экспортировать его в работающую банку и развернуть в каждой системе, в которой работает Java? - person Bosiwow; 13.01.2015
comment
Я только что сделал справочную библиотеку и экспортировал, но получаю эту ошибку: drive.google.com/file/d/0BymG7-nABOfnVGxUQmNzZERtam8/ Кажется, я кое-что забыл :) - person Bosiwow; 13.01.2015
comment
Я действительно не рекомендую упаковывать sikulixapi.jar вместе с вашим приложением jar. Вы должны развернуть его отдельно. Но в любом случае никогда не копируйте sikulixapi.jar в свой проект - всегда работайте со ссылками. Самый удобный способ - использовать Maven, поскольку тогда вам даже не потребуется настройка, а только зависимости. И у Maven есть отличные плагины для создания толстых банок. Примеры смотрите в проекте на github. - person RaiMan; 14.01.2015
comment
Хорошо, я установлю maven на свое затмение и попробую еще раз. Спасибо за обновления. - person Bosiwow; 14.01.2015
comment
Похоже, что на luna eclipse уже установлен maven. Так что же я сделал? Я щелкнул правой кнопкой мыши - ›новый-› проект maven. Затем меня попросили выбрать архетип. Я нажал кнопку «Добавить архетип». Заполнен идентификатор группы: com.sikulix; идентификатор артефакта: sikulixapi; версия: 1.1.0-SNAPSHOT; URL-адрес репутации: oss.sonatype.org/content/groups/public и добавил его. Затем я выбираю только что созданный архетип. Это привело меня к новому экрану, где мне нужно было ввести другой идентификатор группы и идентификатор артефакта. Я выбираю что-то случайное (не знаю, что мне здесь заполнить, я никогда не использовал maven) и нажимал "Готово". - person Bosiwow; 14.01.2015
comment
Затем я получил сообщение об ошибке: Невозможно создать проект из архетипа [com.sikulix: sikulixapi: 1.1.0-SNAPSHOT - ›oss.sonatype.org/content/groups/public]. Ты хоть представляешь, что я сделал не так? - person Bosiwow; 14.01.2015
comment
Да, в Luna встроен Maven. - person RaiMan; 15.01.2015
comment
Да, в Luna встроен Maven. Но, как всегда в Eclipse: основные вещи Maven скрыты за сложными диалогами, которые трудно понять новичкам. Тем не менее: на этой первой странице диалога при создании нового проекта Maven вверху нажмите «Создать простой…» и нажмите «Далее». В следующем диалоговом окне введите идентификатор группы, например com.mystuff, и идентификатор артефакта, например test1, и нажмите «Готово». - person RaiMan; 15.01.2015
comment
Теперь у вас есть скелет проекта, с которым можно работать. Остальное нужно сделать двойным щелчком по pom.xml. Снова вы получаете ошеломляющий диалог с множеством опций. тогда вам понадобится вкладка зависимостей (вкладки внизу). Теперь вам нужно найти свой собственный путь, поскольку мне не нравится Eclipse, и я использую Netbeans из-за хорошего соотношения мощности и простоты. - person RaiMan; 15.01.2015
comment
Хорошо, спасибо, посмотрю, когда буду дома; И еще раз большое спасибо. - person Bosiwow; 15.01.2015
comment
Итак, я создал проект maven в Luna, я переместил все java-файлы в src / main / java, а мои изображения - в src / main / resources / sikuli. После этого я посмотрел на pom.xml из примера проекта github и настроил свой вот как он выглядит: goo.gl/ ubuPRS. После этого я запустил код, и он сработал! Он запускался из eclipse, поэтому я думаю, что maven настроен правильно. (Я сам не добавлял банок, всю работу сделал maven). Вот как выглядит мой макет проекта: goo.gl/ELoab4. Я думаю, мне нужно переписать строку ресурса с помощью ImagePath.add (...), что я должен написать между круглыми скобками? - person Bosiwow; 15.01.2015
comment
Я читал на сайте ImagePath.add (someClass / images), но понятия не имею, что вы имеете в виду под someclass. Кроме того, если я перепишу эту строку, могу ли я экспортировать ее в работающую банку, и будет ли она работать? - person Bosiwow; 15.01.2015
comment
ImagePath.add (someClass / images) --- someClass - это просто имя вашего основного класса в проекте без .java, и в вашем случае изображения будут sikuli. Вам также стоит взглянуть на java-документацию. с этим вы можете просто сказать новый шаблон (2.png) .similar (0.85) - person RaiMan; 15.01.2015
comment
да, это будет работать и при выходе из банки. - person RaiMan; 15.01.2015
comment
соответствующий плагин Maven - maven-assembly-plugin для создания исполняемых толстых jar-файлов, содержащих зависимости. - person RaiMan; 15.01.2015
comment
Итак, я изменил ImagePath на: ImagePath.add (application.Launcher / sikuli); Потому что один только Launcher не справился (поэтому я подумал, что буду использовать полное доменное имя). Это работало внутри eclipse (Launcher.java содержит основной метод, а изображения находятся внутри src / main / resources / sikuli). Опять же, все это работало внутри eclipse, поэтому я экспортировал его в работающую банку и сказал ей скопировать необходимые библиотеки в подпапку рядом с сгенерированной банкой (так что никаких плагинов maven). - person Bosiwow; 17.01.2015
comment
Итак, я запустил экспортированное приложение и получил эту ошибку, как только оно попало в строки, где требовалось изображение: drive.google.com/file/d/0BymG7-nABOfnTmR0NzdTXzlSU2M/view. Вы можете увидеть иерархию проектов слева на этом изображении: goo.gl/ELoab4; Ты хоть представляешь, почему это не работает? - person Bosiwow; 17.01.2015
comment
Спасибо за помощь, я открыл новую ветку с проблемой экспорта изображений: stackoverflow.com/questions/28187543/ - person Bosiwow; 28.01.2015