java - 使用 Eclipse 中指定的环境变量导出可运行的 jar

标签 java eclipse sikuli sikuli-script

我目前正在使用 Sikuli它需要设置 PATHSIKULI_PATH 环境变量才能执行。在运行配置中应用它相当简单,并且允许我在 Eclipse 中按预期运行脚本。

导出可运行的 JAR 可以很好地处理除抛出 UnsatisfiedLinkError 之外的所有情况,这与我没有设置上述变量时收到的异常相同。

是否有方便的方法将以下设置导出到可运行的 JAR 中?: enter image description here

这个想法本质上是生成一个执行 Sikuli 脚本的独立可执行 JAR。

我尝试手动设置 PATHSIKULI_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)

最佳答案

我认为没有开箱即用的方法,因为这是特定于操作系统的。如果您使用的是 Windows,只需创建一个包含沿

行的批处理文件
 set PATH=%PATH%;...
 set SIKULI_HOME=...
 %JAVA_HOME%\bin\java yourrunnable.jar

关于java - 使用 Eclipse 中指定的环境变量导出可运行的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344120/

相关文章:

Java:读取 Excel 样式文档的最简单方法?

java - 需要在 Visual Studio Code 中导入 Eclipse Java Formatter 配置文件

ubuntu - 如何在Sikuli中发送Windows Home键+ "i"?

testing - Sikuli 与 Selenium WebDriver 的集成

java - 将 "condition ? expr1 : expr2"的链转换为 "if"的链

java - GWT TreeViewModel 未按预期工作

javascript - 如何在NodeJs中应用Java/Spring的分层架构?

java - onClick 方法不起作用

java - 在另一个包的接口(interface)文件中使用类

java - 如何使用 sikulix 和 java 获取 Windows 应用程序的页面加载时间?