我在 JavaFX SceneBuilder 中的文本字段上设置了此 OnClick 方法,如果用户选择该文本字段,该方法将弹出 Windows 8 触摸键盘。然而,当我单击文本字段时似乎没有发生任何事情,但当我尝试在任务管理器中检查 Tabtip.exe 时,它确实显示在那里。代码是:
try
{
Runtime rt = Runtime.getRtuntime();
rt.exec( "cmd /c C:\\Programs Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe");
}
catch
{
ex.printStackTrace();
}
没有触发任何错误,并且 TabTip.exe 正在任务管理器中运行,但弹出键盘没有显示,有人对此有任何解决方案吗?谢谢!
最佳答案
每当你想执行命令提示符中包含空格的命令时,你必须将其用双引号引起来。
像这样:
String commandStr = "cmd /c \"C:\\Program Files\\Common Files\\Microsoft Shared\\ink\\mip.exe\"";
rt.exec( commandStr );
除此之外,如果您想知道错误,您可以从 RuntimeObject.exec() 返回的 Process 类对象中获取错误流。
String commandStr = "cmd /c C:\\Programs Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe"; // Like you did
InputStream is = rt.exec( commandStr ).getErrorStream();
int b;
while((b=(is.read()))!=-1)
System.out.print((char)b);
}
关于java - Runtime.getRuntime().exec 无法执行/显示 Tabtip.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23006063/