我目前使用的Sikuli需要设置PATH
和SIKULI_PATH
环境变量才能执行。在运行配置中应用它非常简单,并且允许我在Eclipse中按预期运行脚本。使用Eclipse中指定的环境变量导出可运行jar
导出可运行JAR与除了UnsatisfiedLinkError
之外的所有内容都正常工作,这是我在没有上述变量集时收到的异常。
是否有下面的设置导出到运行的JAR?:
的想法是实质上产生一个独立的可执行的JAR文件执行的Sikuli脚本的便捷方式。
我试图手动设置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)
我正在考虑这样做,但它会覆盖我目前在我的机器上设置的'PATH'变量。将'PATH'设置为'C:\ Program Files(x86)\ Sikuli X \ libs',然后不允许我实际运行'java -jar',除非我丢失了明显的东西。 – Juxhin
你可以添加东西到当前的PATH而不会丢失现有的值,我已经编辑了我的答案。 –
只是在周围扫视,看到了。这种方式好多了。我会先测试它并让你知道。 – Juxhin