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