当从最小的java程序调用CMD命令时,该命令会被卡住

当从最小的java程序调用CMD命令时,该命令会被卡住,java,windows,command-line,Java,Windows,Command Line,我有一个简单的命令CMD/cxyz--abcd:/temp/asd.txt,它在命令提示符下成功执行。现在我把它放在一个简单的java项目中,只有一个类,它停在两个类之间。这个过程不会结束,它会被挂在那里 Process process= Runtime.getRuntime().exec(command); try (final BufferedReader b = new BufferedReader(new InputStreamReader(process.getErrorStream(

我有一个简单的命令
CMD/cxyz--abcd:/temp/asd.txt
,它在命令提示符下成功执行。现在我把它放在一个简单的java项目中,只有一个类,它停在两个类之间。这个过程不会结束,它会被挂在那里

Process process= Runtime.getRuntime().exec(command);
try (final BufferedReader b = new BufferedReader(new InputStreamReader(process.getErrorStream()))) {
        String line;

        while ((line = b.readLine()) != null) {
            System.out.println(line);
        }
}
我甚至用ProcessBuilder试过。总是一样的


使用CMD,它最终打印出大约1000行带有特定消息的内容。使用java代码,它可以挂起大约800行。可能的原因是什么?如何解决此问题?

为什么只读取错误流?输入流中是否可以有200行缺失?我将创建两个缓冲区读取器,一个使用ErrorStream,另一个使用InputStream,并尝试从中进行调试there@IoannisBarakos我把它贴在这里的时候正在玩它。我还打印了inputstream。它运行不正常。我有一个sysout语句,一旦命令被执行,它就会打印出来。已经一个小时了,那行字还没印出来。不管命令是否产生错误或结果,sysout都是在我调用waitFor()之后。它卡住了。你检查过了吗:?什么是
xyz--abc
?@Eugen Covaci。没关系。我写它作为一个例子。有一个命令在cmd中启动时可以正常工作,但是在从一些java代码启动时会被卡住。为什么只读取errorStream?输入流中是否可以有200行缺失?我将创建两个缓冲区读取器,一个使用ErrorStream,另一个使用InputStream,并尝试从中进行调试there@IoannisBarakos我把它贴在这里的时候正在玩它。我还打印了inputstream。它运行不正常。我有一个sysout语句,一旦命令被执行,它就会打印出来。已经一个小时了,那行字还没印出来。不管命令是否产生错误或结果,sysout都是在我调用waitFor()之后。它卡住了。你检查过了吗:?什么是
xyz--abc
?@Eugen Covaci。没关系。我写它作为一个例子。有一个命令在cmd中启动时可以正常工作,但在某些java代码中启动时会被卡住。