我目前使用的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