我正在从程序中运行.exe
文件,并且需要花费一些时间。以下命令中使用此命令的输出进行进一步处理。输出是一个布尔变量。但是该程序立即返回false
,但实际上该命令仍在执行中,并且需要花费一些时间。由于值为false,后续语句将引发错误。我该如何处理这种情况。return_var = exec(pagecmd)
是执行语句。
boolean return_var = false;
if("true".equals(getConfig("splitmode", ""))){
System.out.println("Inside splitmode if**********************");
String pagecmd = command.replace("%", page);
pagecmd = pagecmd + " -p " + page;
File f = new File(swfFilePath);
System.out.println("The swffile inside splitmode block exists is -----"+f.exists());
System.out.println("The pagecmd is -----"+pagecmd);
if(!f.exists()){
return_var = exec(pagecmd);
System.out.println("The return_var inside splitmode is----"+return_var);
if(return_var) {
strResult=doc;
}else{
strResult = "Error converting document, make sure the conversion tool is installed and that correct user permissions are applied to the SWF Path directory" +
getDocUrl();
}
最佳答案
与Andreas建议的waitFor()结合使用,您可能还需要使用exec()返回的Process对象的getInputStream来检索由正在执行的程序编写的数据。