gpt4 book ai didi

java - 为什么 Process.waitfor 不返回?

转载 作者:行者123 更新时间:2023-11-30 04:36:21 24 4
gpt4 key购买 nike

这是我的代码。请查看。看来 p.waitFor() 没有返回,请帮助我。谢谢。

try
{
String svnCmd="svn diff -r " +startVersion +":" + endVersion +" --summarize --username testdomain\\tesuer --password test.123 http://cvs-server.testserver.com:8001/svn/projects/testproject/";

Process p = Runtime.getRuntime().exec(svnCmd);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null)
{
System.out.println(line);
line = reader.readLine();
}
}
catch (IOException e1)
{

}
catch (InterruptedException e2)
{

}

System.out.println("Done");

最佳答案

我猜测,但 Process API 存在一个常见问题,即您必须使用 Process 的 stdout 和 stderr,否则当支持这些流(操作系统级别)的缓冲区填满时,外部进程可能会阻塞。

典型的方法是启动一个或多个线程在后台使用此信息。

我会使用Apache Commons Exec,而不是自己动手。它会为你处理这个问题。

关于java - 为什么 Process.waitfor 不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com