我的Java应用程序中有以下代码:
boolean is64 = System.getProperty("os.arch").contains("64");
String oskPath = is64 ? "/SysWOW64/osk.exe" :"/system32/osk.exe";
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
String sysroot = System.getenv("SystemRoot");
try {
System.out.println("SysArch "+System.getProperty("os.arch")+ " " +is64);
desktop.open(new File(sysroot + oskPath));
它会调用Windows的屏幕键盘。当我在Windows 64位上运行.jar时没关系,但是当我运行.exe时它不起作用。 我试过这个:
Runtime.getRuntime().exec("cmd /c " + sysroot + oskPath);
和此:
Runtime.getRuntime().exec("osk");
但同样的事情发生了。我创建.exe whith launch4j,我试图将.bat(谁运行.jar)转换为.exe但没有发生任何事情。有人可以帮忙吗?提前谢谢。