我正在使用Sikuli-api来自动化一个独立的应用程序。此应用程序在运行*.bat
文件上启动。在代码中,我将这个应用程序打开为:
m_sikscr=new SikuliScript();
m_sikscr.openApp("path of bat file");
我在这个 openApp() 命令上遇到了异常。
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x515ee11e, pid=3992, tid=5868
#
# JRE version: Java(TM) SE Runtime Environment (8.0_20-b26) (build 1.8.0_20-b26)
# Java VM: Java HotSpot(TM) Client VM (25.20-b23 mixed mode windows-x86 )
然而,当我尝试通过下面的代码行打开相同的 bat 文件时,它会成功打开。:
String[] command = {"cmd.exe", "/C", "Start", "*.bat"};
Runtime r = Runtime.getRuntime();
Process p = r.exec(command);
p.waitFor();
下面是堆栈跟踪:
Stack: [0x00d50000,0x00da0000], sp=0x00d9edc8, free space=315k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xce11e]
C [Win32Util.dll+0x147d]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.sikuli.script.Win32Util.openApp(Ljava/lang/String;)I+0
j org.sikuli.script.App.open()Lorg/sikuli/script/App;+19
j org.sikuli.script.App.open(Ljava/lang/String;)Lorg/sikuli/script/App;+8
j org.sikuli.script.SikuliScript.openApp(Ljava/lang/String;)I+1
j testpack.OmsTest.openOMS()V+1509
v ~StubRoutines::call_stub
我不明白这是否是 bat 文件或 Sikuli 的问题。