Как запускать команды CMD из сервиса springboot? - PullRequest
0 голосов
/ 27 сентября 2019

Я могу запустить тот же код через обычный класс Java.Однако, когда я перемещаю тот же код в класс службы в Springboot и вызываю службу из контроллера при нажатии URL, команда не запускается или застревает на долгое время.

    Process process = new ProcessBuilder("CMD", "/C", command2).start();
    .
    .
    .
    process.waitFor();
    process.destroy();

Пробовал много раз и разными способами, все еще не может найти решение.

команда

"tool --f pathToFile".

1 Ответ

1 голос
/ 27 сентября 2019

Попробуйте использовать отдельные аргументы и не используйте всю команду, а разбивайте ее на отдельные аргументы, как показано ниже:

try {
            List<String> commands = new ArrayList<>();
            commands.add("CMD");
            commands.add("/C"); 
            commands.add("tool");
            commands.add("--f");  
            commands.add(pathToFile);
            ProcessBuilder pb = new ProcessBuilder(commands);
             try {
                    Process p = pb.start();
                    int j = p.waitFor();
                    int exitValue = p.exitValue();
                    System.out.println("Finished with code: " + j);
                    System.out.println("Finished with exitValue: " + exitValue);
                } catch (Exception e) {
                    System.out.println("exception: " + e);
                }
        } catch (Exception e) {
            e.printStackTrace();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...