1

現在、実行するために aと環境変数の両方を設定する必要がある Sikuliを使用しています。これを実行構成に適用するのはかなり簡単で、Eclipse 内から意図したとおりにスクリプトを実行できます。PATHSIKULI_PATH

実行可能な JAR のエクスポートはUnsatisfiedLinkError、前述の変数が設定されていない場合に受け取る例外と同じ例外がスローされることを除いて、すべて正常に機能しています。

以下の設定を実行可能な JAR にエクスポートする便利な方法はありますか?: ここに画像の説明を入力

基本的には、Sikuli スクリプトを実行するスタンドアロンの実行可能 JAR を生成するという考え方です。

を手動で設定しようとしPATHましたが、どちらもSIKULI_HOME意図したとおりに機能しました ( echo %PATH%&echo %SIKULI_HOME%両方とも必要なパスを出力します)。しかし、私はまだ同じものを受け取っていUnsatisfiedLinkErrorます。以下は、関連する StackTrace です。

C:\Users\XXXXX\Desktop>java -jar sikuli.jar -Dsikuli.Debug=3 -Djava.library.path = "C:\Program Files (x86)\Sikuli X\"
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at     org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Sikuli X\libs\Win32Util.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.load0(Unknown Source)
    at java.lang.System.load(Unknown Source)
    at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader.java:44)
    at org.sikuli.script.Win32Util.<clinit>(Win32Util.java:19)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.sikuli.script.Env.getOSUtil(Env.java:91)
    at org.sikuli.script.ScreenHighlighter.init(ScreenHighlighter.java:180)
    at org.sikuli.script.ScreenHighlighter.<init>(ScreenHighlighter.java:293)
    at org.sikuli.script.Screen.initBounds(Screen.java:105)
    at org.sikuli.script.Screen.<init>(Screen.java:117)
    at org.sikuli.tests.TestSikuli.main(TestSikuli.java:13)
4

2 に答える 2

2

これはOS固有であるため、すぐに使える方法はないと思います。Windows を使用している場合は、次の行を含むバッチ ファイルを作成するだけです。

 set PATH=%PATH%;...
 set SIKULI_HOME=...
 %JAVA_HOME%\bin\java yourrunnable.jar
于 2015-07-10T15:12:46.147 に答える
0

環境変数を追加するだけでは不十分でした。管理者としてログインし、システム変数を設定してSikulilibsパスを追加し、.PATHSIKULI_HOMESikuliX

その後、Sikuli ファイルを に保持することは推奨されていないことを読みProgram Files(x86)、代わりに に移動しましたC:\Users\my_user\SikuliX


また、Sikuli-Java.jarはプロジェクト ワークスペース内に保持する (および内部で参照する) のではなく、プロジェクトの外 (実際には SikuliX パス) に保持する必要があり、常にそこに保持する必要があります。

SikuliX に関するフォルダーを変更する場合は、重複するコピーを削除して、将来の更新で発生する可能性のある衝突の問題を回避してください。

Program Filesこの情報の一部は、フォルダーからフォルダーへの移動など、冗長である可能性がありUserますが、それで問題は解決しました。


注 - システム変数に変更を加えた場合は、少なくともログアウトしてから再度ログインして、変更を有効にしてください。

于 2015-07-10T19:32:54.683 に答える