Я использую ниже код для создания отчета из входных данных.Когда данных немного, приведенный ниже код работает нормально.Но когда объем данных становится больше, моя программа зависает, и приходится закрывать приложение с помощью диспетчера задач.
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);
}
}
Приложение зависает, поскольку этот метод ожидает завершения процесса.Какие варианты я могу использовать для этого?