我正在从程序中运行.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来检索由正在执行的程序编写的数据。

10-01 15:20