У меня есть пользовательское приложение win32, которое я вызываю, используя следующую java программу, которая извлекает выходные данные приложения win32 и возвращает их другой функции
Runtime runtimeObject = Runtime.getRuntime();
Process process;
int exitValue;
String responseFromApp = "";
BufferedReader is; // reader for output of process
String line;
String programName="C:\\myprogram\\xyz.exe";
try {
process = runtimeObject.exec(programName);
is = new BufferedReader(new InputStreamReader(process.getInputStream()));
logger.debug("In Main after exec");
while ((line = is.readLine()) != null)
responseFromApp += line;
logger.debug("In Main after EOF");
System.out.flush();
process.waitFor(); // wait for process to complete
exitValue = process.exitValue();
logger.debug("Process done, exit status was " + exitValue);
if(exitValue == 0)
return responseFromApp;
else {
logger.error("win32 check app failed with exit code {} ", exitValue);
return "";
}
} catch (InterruptedException e) {
logger.error("function call inturrepted abruptly.");
return "";
} catch (IOException e) {
logger.error("IOException while reading the win32App");
return "";
}
}
После встраивания в проект и развертывания на tomcat 8.5 я заметил, что он не работает и не дает ожидаемого результата, но при работе в качестве независимой java программы он выдавал ожидаемый результат. Я уже пробовал сборщик процессов, но он не дает ожидаемого результата после развертывания на tomcat. Мне не удается понять, что проблема связана с программой java или tomcat, поскольку независимая программа java работает, но после развертывания на сервере tomcat она не работает.
Я использую jdk1.8.0_211 и tomcat 8.5
Заранее благодарю за любую помощь в выявлении проблемы.