Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java进程获取结果_Java - Fatal编程技术网

Java进程获取结果

Java进程获取结果,java,Java,我目前正在进行语音识别项目,我想根据用户的语音命令访问某些密钥。例如,如果用户说“a”,我想打印a。我发现了一个cmd命令,可以执行此操作。此命令在命令提示符下工作正常,并返回一个作为输出的值。但是我想在我的java应用程序中使用它。我找到了一个可以获取命令输出并打印它的方法。但在这种情况下,它无法打印“a”。请帮助..这是代码片段 public void Voice() throws IOException { Process p; String work = "cmd /c ni

我目前正在进行语音识别项目,我想根据用户的语音命令访问某些密钥。例如,如果用户说“a”,我想打印a。我发现了一个cmd命令,可以执行此操作。此命令在命令提示符下工作正常,并返回一个作为输出的值。但是我想在我的java应用程序中使用它。我找到了一个可以获取命令输出并打印它的方法。但在这种情况下,它无法打印“a”。请帮助..这是代码片段

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

从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”;

进程运行正常,但没有返回输出“a”。因为nircmd实用程序位于Windows文件夹中。因此它首先扫描Windows文件夹,不需要提供完整路径。。。。