2017-04-04 76 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