Java-программа зависает при запуске командного файла - PullRequest
0 голосов
/ 04 декабря 2018

Я использую ниже код для создания отчета из входных данных.Когда данных немного, приведенный ниже код работает нормально.Но когда объем данных становится больше, моя программа зависает, и приходится закрывать приложение с помощью диспетчера задач.

public void launchReport() {

    if( selectionRulesRespected ) {

        final Process p;

        final String userNameParLine = getUserNameParLine();
        final String injParLine = getFilterByFieldParLine();

        writeTmpParFile(tmpParFilePath, new String[]{userNameParLine, injParLine});

        try {
            final ProcessBuilder builder;
            if( exporting != null && "TRUE".equals(exporting.toUpperCase()) ) {
                builder = new ProcessBuilder("cmd", "/c", batFilePath, reportName, tmpParFilePath, exportFilePath);
            }
            else {
                builder = new ProcessBuilder("cmd", "/c", batFilePath, reportName, tmpParFilePath);
            }
            //builder.directory( new File(viewerDirPath));
            p = builder.start();
            p.waitFor();
        } catch (final IOException e) {
            PlanonMessageDialog.showErrorDialog(ioError);
        } catch (final InterruptedException e) {
            e.printStackTrace();
        }

    } else {
        PlanonMessageDialog.showErrorDialog(wrongItem);
    }
}

Приложение зависает, поскольку этот метод ожидает завершения процесса.Какие варианты я могу использовать для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...