Java 从getInputStream获取输入时出现奇怪的问题
这是我的密码:Java 从getInputStream获取输入时出现奇怪的问题,java,Java,这是我的密码: Runtime re = Runtime.getRuntime(); BufferedReader output = null; try{ Process cmd = re.exec("java -jar myProg.jar " + myArgument); output = new BufferedReader(new InputStreamReader(cmd.getInputStream
Runtime re = Runtime.getRuntime();
BufferedReader output = null;
try{
Process cmd = re.exec("java -jar myProg.jar " + myArgument);
output = new BufferedReader(new InputStreamReader(cmd.getInputStream()));
}
catch (Exception e){
e.printStackTrace();
}
String line;
while ((line = output.readLine()) != null)
{
//process line
}
调试此代码段时,我发现从输出中读取每一行时,它会跳过某些行
如果我从命令行运行这个myProg.jar,我在命令行上看到的文本与我在java程序内部处理输出时得到的文本不是100%相同
这是什么原因造成的?输出全部为文本 您似乎只是在读取标准输出,而您可能也会得到标准错误的输出。两本我都会读
请注意,您需要同时读取这两个流,以避免阻塞。有关更多详细信息,请参阅。您似乎只是在读取标准输出,而您可能也在获取标准错误的输出。两本我都会读
请注意,您需要同时读取这两个流,以避免阻塞。有关更多详细信息,请参阅。这不会直接回答您的问题,但您是否考虑过使用类加载器加载类,而不是使用单独的过程:-这可能会让您更容易,因为您不必通过命令行-您可以与对象通信。这不会直接回答您的问题,但是,您是否考虑过使用类加载器来加载类,而不是使用单独的进程:-这可能会让您更容易,因为您不必通过命令行-您可以与对象通信。为什么输出只是随机出现在标准错误中?对我来说没有意义。这不是一个错误,这是一个输出。为什么输出只是从标准错误中随机出来的呢?对我来说没有意义。这不是一个错误,这是一个输出。