launchservicesd: secTaskLoadEntitlements failed error = 22 при загрузке java

Я пытаюсь запустить программу python (sikuli), которая импортирует банку с помощью jnius . Это суть кода в пакете sikuli, который загружает файл jar в python

import os jarpath = "/Users/*/sikuli-api-1.0.3-standalone.jar" os.environ['CLASSPATH'] = jarpath from jnius import autoclass DesktopMouse = autoclass('org.sikuli.api.robot.desktop.DesktopMouse') aa = DesktopMouse() gg = aa.getLocation() 

Этот код работает без проблем при запуске в Windows. Но когда я запускаю это в mac, программа зависает с иконкой java в доке. значок java , и я получаю эту ошибку / сообщение в журналах, когда запускаю скрипт python.

 launchservicesd: SecTaskLoadEntitlements failed error=22 appleeventsd: SecTaskLoadEntitlements failed error=22 

Может ли кто-нибудь сказать, что означает эта ошибка (или причина значка hang / java в доке)? Я хотел бы отладить причину этой зависания, но любая помощь в отладке этой ошибки была бы рада.

    One Solution collect form web for “launchservicesd: secTaskLoadEntitlements failed error = 22 при загрузке java”

    Есть два ответа на ваш вопрос о значке док-станции, первый о том, почему он появляется, а второй о том, почему он остается:

    1. Если JVM не запущен с -Djava.awt.headless=true , JVM будет инициализировать подсистему GUI (AWT или Swing), когда запущенная программа сначала обратится к классу или методу в нем. Можно тривиально увидеть это в действии с помощью программы jjs в JRE:

      Эта команда будет запущена, но не приведет к появлению значка док-станции:

      echo 'java.lang.System.out.println("hello")' | $JAVA_HOME/jre/bin/jjs

      Эта команда будет запущена, но приведет к значку док-станции:

      printf 'var f = new javax.swing.JFrame("frame 1")\nf.setVisible(true)\n' | \ $JAVA_HOME/jre/bin/jjs

      На самом деле у вас есть влияние на значок, который появляется на доке, через -Xdock:icon как описано здесь , если вы просто хотите, чтобы появился более приятный значок

    2. Выполняя этот второй фрагмент выше, тот, в котором находится JFrame , выявляет вторую часть того, почему значок док-станции остается: из AWT-EventQueue-0 который отвечает за отправку событий GUI всем зарегистрированным обработчикам событий в вашем программа, JVM не выходит, когда ваша программа заканчивается, потому что вышел только основной поток, а не GUI.

      JVM не знает, что вы закончили взаимодействие с ним, и, таким образом, будете ждать навсегда, пока вы не выключите подсистему GUI или не остановите JVM

    Чтобы решить вашу проблему «зависания», принудительное завершение работы JVM через System.exit(0) может работать нормально для ваших нужд. Я предполагаю, что синтаксис jnius будет примерно таким:

     jls = autoclass("java.lang.System") jls.exit(0) 

    но этот синтаксис – это только мое предположение, поскольку у меня нет jnius установленного в моей системе.

      Python - лучший язык программирования в мире.