2017-04-04 38 views
0

我目前正在进行语音识别项目,我想根据用户的语音指令访问某些键。例如,如果用户说'a',我想打印一个。我找到了一个可以完成这项工作的cmd命令。此命令在命令提示符下正常工作并返回一个as输出。但我想在我的Java应用程序中使用它。我发现了一个可以获取命令输出并打印它的方法。但在这种情况下,它不能打印'a'。请帮助..这里是代码片段。Java过程得到结果

public void Voice() throws IOException { 
    Process p; 
    String work = "cmd /c nircmd.exe sendkey a press"; // used nircmd utility 

    p = Runtime.getRuntime().exec(work); 
    String output=""; 
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

    while ((output = reader.readLine()) !=null) { 
     System.out.println(output); 
    } 

    reader.close(); 
} 

回答

0

当您从Java运行Windows的命令cmd,请记住,你的工作目录是项目目录或从运行java的目录。因此,从您描述的症状看来,当您从java运行nircmd实用程序时,它似乎找不到。尝试给exe的完整路径。

更换

String work = "cmd /c nircmd.exe sendkey a press";

String work = "cmd /c "c:\\your-path\\nircmd.exe sendkey a press";

+0

的过程工作正常,但没有返回输出 'A'。由于nircmd实用程序位于Windows文件夹中。所以它首先扫描Windows文件夹,并且不需要提供完整路径.... – Raj