我需要通过Java逐个运行maven命令的帮助。
在我的代码中,我尝试运行maven build命令并将日志打印到Swing TextArea窗口。
但问题是var xdoc = new XDocument(xmlsnippet);
string xml = RemoveAllNamespaces(xdoc.ToString());
foreach (XElement element in XDocument.Parse(xml).Descendants("leaf"))
{
arr.Add(new Test("leaf", element.Value, 2));
break;
}
foreach (XElement element in XDocument.Parse(xml).Descendants("sas"))
{
arr.Add(new Test("sas", element.Value, 2));
break;
}
foreach (XElement element in XDocument.Parse(xml).Descendants("kir"))
{
if (element.Value == "0")
arr.Add(new Test("kir", "90", 2));
break;
}
无法正常工作。结果是多个过程
正在同时运行并且日志未正确打印。
在互联网上,我发现Process.waitFor()
有时不起作用。相反,我可以使用
waitFor()
。但我不确定在我的代码中我将如何使用该方法。
请帮忙
Process.isAlive()
答案 0 :(得分:0)
我有点困惑你到底在哪里挣扎,所以也许我忽略了什么,但你通常会这样使用它:
process[count].waitFor();
while (process[count].isAlive()) {
Thread.sleep(100);
}
您可能希望完全摆脱waitFor
并在循环中添加一些额外的检查,例如如果进程挂起,则超时或取消进程的信号,以便您的应用程序可以正常终止:
while (process[count].isAlive()) {
if (someTimeoutCondition || someCancelCondition) {
// throw exception or do whatever else you want to do in this situation to gracefully exit
}
Thread.sleep(100);
}