Runtime.getRuntime () не может выполнить EXE-файл, когда само приложение исполняется EXE - PullRequest
0 голосов
/ 04 октября 2018

Меня гуглили по поводу моей проблемы.Но я не мог найти правильный ответ.У меня есть приложение Java maven, и я запускаю внутренний код EXE-файла.Я использовал Runtime.getRuntime().exec.Это должно быть хорошо.Когда вы создаете JAR-файл и запускаете его, он работает хорошо.Но проблема проявляется, когда вы создаете файл exe из собственного приложения.

Я хочу создать исполняемый файл из Java-приложения (я использовал Launch4j) и внутри него выполнить что-то, например запустить другоеEXE-файл.К сожалению, упомянутый код не работает, и я не получил ни одной ошибки.

Process proc = Runtime.getRuntime()
                .exec("cmd /c start \"\" \"" + destinationPath + "\\run_service.exe\"");
    BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));

    // Display Errors in logfile
    BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

    // read the output from the command
    logger.info("Here is the standard output of the Process:\n");
    String msg = null;
    while ((msg = stdInput.readLine()) != null) {
        logger.info(msg);
    }

    // read any errors from the attempted command
    logger.info("Here is the standard error of the Process (if any):\n");
    while ((msg = stdError.readLine()) != null) {
        logger.info(msg);
    }

Пожалуйста, дайте мне знать, если кто-то знает об этом больше.

...