Runtime объект не может выполнить exe - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть пользовательское приложение 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

Заранее благодарю за любую помощь в выявлении проблемы.

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