2016-08-23 8 views
0

jniusを使用してjarをインポートするPythonプログラム(sikuli)を実行しようとしています。これは私がウィンドウで実行したときに何の問題もなく、このコードが実行されるのpythonlaunchservicesd:secTaskLoadEntitlementsがエラー22を読み込んでいますが、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パッケージ内のコードの要旨です。しかし、私はこれをMacで実行すると、プログラムはドックのJavaアイコンでハングします。 java icon。私はpythonスクリプトを実行すると、ログにこのエラー/メッセージが表示されます。

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

このエラーの意味(またはドックのハング/ジャックアイコンの理由)は誰でも誰でも言うことができますか?私はこのハングの理由をデバッグしたいと思いますが、このエラーをデバッグする際の助けになるのは歓迎します。

答えて

0

ドックアイコンについてのご質問への2つの答え、それが現れる理由についてまず、それが残っている理由について秒あります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との1が、明るみにもたらすことを実行して

  2. を表示させたい場合ually、-Xdock:iconas described hereを経由して、ドックに表示されるアイコンに影響力を持っていますドックアイコンが残っている理由の2番目の部分:プログラム内のすべての登録イベントハンドラにGUIイベントをディスパッチするためのスレッドAWT-EventQueue-0があるため、メインスレッドのみが終了したため、終了終了、GUIのものではありません。

    JVMを強制的に遮断する、あなたが「ハング」問題を解決するにはJVM

をそれと対話を終えているので、あなたまで永遠に待ついずれかのGUIサブシステムをシャットダウンまたは停止します知りませんSystem.exit(0)経由でJVMをダウンすると、必要に応じて正常に動作する可能性があります。私はjnius構文のようなものになるだろうと推測します:

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

が、私は私のシステムでjniusインストールされていないように、その構文は、唯一の私の憶測です。

関連する問題