2016-08-23 3 views
0

jnius을 사용하여 jar 파일을 가져 오는 python 프로그램 (sikuli)을 실행하려고합니다. 이것은 내가 창에서 실행하면 아무 문제없이이 코드가 실행 파이썬launchservicesd : secTaskLoadEntitlements 오류가 발생했습니다. Java를로드하는 동안 오류가 발생했습니다.

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() 

에서 jar 파일을로드 sikuli 패키지의 코드의 요지이다. 하지만 내가 맥에서 이것을 실행하면, 프로그램은 도크에 자바 아이콘으로 멈춰 버린다. java icon. 파이썬 스크립트를 실행할 때 로그에이 오류/메시지가 표시됩니다.

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

누구든지이 오류의 의미 (또는 도킹의 중단/java 아이콘의 이유)를 말할 수 있습니까? 이 중단에 대한 이유를 디버깅하고 싶지만이 오류를 디버깅하는 데 도움이 될 것입니다.

답변

0

도크 아이콘에 대한 귀하의 질문에 두 개의 답변이 나타나는 이유에 대해 처음과 남아있는 이유에 대해 두 번째가 다음과 같습니다 JVM이 -Djava.awt.headless=true로 시작하지 않는 한

  1. 은 다음 JVM이 초기화됩니다 실행중인 프로그램이 클래스 나 메소드에 처음 액세스 할 때 GUI 하위 시스템 (AWT 또는 Swing). 하나는 하찮게는 JRE에 jjs 프로그램을 사용하여 동작에서 볼 수 있습니다

    이 명령이 실행되지만 것이다 하지 도크 아이콘 원인 :

    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

    당신의 행동 : 도크 아이콘의 원인 당신은 단지 더 좋은 아이콘처럼 두 번째 조각 위, 그것에 JFrame와 함께 하나의 불을 가져다 실행

  2. 을 표시하려는 경우 부를 따로, -Xdock:iconas described here 통해 도크에 표시되는 아이콘에 영향을 미칠 할 도킹 아이콘이 남아있는 이유 중 두 번째 부분 : 프로그램의 등록 된 모든 이벤트 처리기로 GUI 이벤트를 전달하는 스레드 인 AWT-EventQueue-0 스레드로 인해 메인 스레드 만 종료되었으므로 프로그램이 종료 될 때 종료이 종료되지 않습니다. GUI가 아닙니다.

    JVM은 강제 종료, 당신이 당신의 "정지"문제를 해결하려면 JVM

을 함께 상호 작용을 완료하고, 그래서 당신 때까지 계속 대기 중 하나 GUI 서브 시스템을 종료하거나 중지 모른다 System.exit(0)을 통해 JVM을 다운하면 필요에 따라 제대로 작동 할 수 있습니다. 나는 jnius 구문은 같은 것입니다 추정 것 :

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

을하지만 jnius 내 시스템에 설치되어 있지 않는 한 그 구문은, 단지 내 추측이다.

관련 문제