【问题标题】:Runtime.getRuntime().exec could not execute/show Tabtip.exeRuntime.getRuntime().exec 无法执行/显示 Tabtip.exe
【发布时间】:2014-04-11 07:22:49
【问题描述】:

我在 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在任务管理器中运行,但弹出键盘没有出现,有人有什么解决办法吗?谢谢!

【问题讨论】:

  • 1- 使用ProcessBuilder,2- 尝试\"C:\\Programs Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe\" - of 和cmd /c 我不喜欢长路径名...
  • 是的,包含空格的文件路径需要用引号括起来。
  • 我确实尝试只放置“\”C:\\Programs Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe\",但是当我单击时出现运行时错误文本字段说“java.IOException:CreateProcess error=740。请求操作需要提升”

标签: java netbeans javafx


【解决方案1】:

当你想在命令提示符中执行一个包含空格的命令时,你必须把它用双引号引起来。

像这样:

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);
}

【讨论】:

  • 非常感谢!!键盘现在弹出:)
【解决方案2】:

请这样做。对我来说,在 window10 中使用 javaFx 应用程序是可以的。

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "\"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe");
builder.redirectErrorStream(true);
Process p;
try
{
    p = builder.start();
    BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String line;
    while (true)
    {
        line = r.readLine();
        if (line == null)
        {
            break;
        }
        System.out.println(line);
    }
}
catch (IOException e)`enter code here`
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}`enter code here`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多