【发布时间】:2016-04-28 21:05:48
【问题描述】:
您好,我在使用 autoitx4java 的 Java 程序中使用 AutoIt。以下是我正在使用的代码:
import java.io.File;
import autoitx4java.AutoItX;
import com.jacob.com.LibraryLoader;
public class MyTest {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
String jacobDllVersionToUse;
if (jvmBitVersion().contains("32")){
jacobDllVersionToUse = "jacob-1.18-x86.dll";
}
else {
jacobDllVersionToUse = "jacob-1.18-x64.dll";
}
File file = new File("lib", jacobDllVersionToUse);
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
AutoItX x = new AutoItX();
// System.out.println(file.getAbsolutePath());
x.run("cmd.exe");
}
private static String jvmBitVersion() {
// TODO Auto-generated method stub
System.out.println(System.getProperty("sun.arch.data.model"));
return System.getProperty("sun.arch.data.model");
}
}
当我运行这个程序时,什么也没有发生,也没有错误。如果我用 notepad.exe 替换 cmd.exe,也会发生这种情况。 但是,当我用 calc.exe 替换 cmd.exe 时,计算器会启动。
我是 AutoIt 的新手,并使用以下链接使用 Java 设置 AutoIt:
【问题讨论】:
-
也许您应该检查的是操作系统架构而不是 JVM 架构。毕竟,您可以在 64 位操作系统上运行 32 位 JVM。强制您的代码使用 64 位 DLL,如果这不起作用,则强制使用 32 位 DLL,如果这不起作用,则尝试提供 cmd.exe 的显式路径,看看是否有区别。