Войдите в систему и перезагрузите сервер JBoss с помощью Java

Я пытаюсь войти в свой JBoss server с помощью Java и перезагрузить его. Я пробовал следующий код:

ProcessBuilder processBuilder = new ProcessBuilder("C:\\jboss\\jboss-eap-6.4\\bin\\jboss-cli.bat -c --controller=10.10.10.10 --user=user --password=pass --command=:reload");

    processBuilder.inheritIO();
    Process p = processBuilder.start();
    try {
        p.waitFor();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

но я получаю эту ошибку:

CreateProcess error=2, The system cannot find the file specified

У меня есть следующие настройки для переменных среды:
1. JAVA_HOME- C:\Program Files\Java\jdk1.8.0_121
2. JBOSS_HOME-C:\jboss\jboss-eap-6.4
3. Bat файл присутствует в каталоге
4. Я могу войти и перезагрузить его вручную.

У меня здесь нет идей.

Не передавайте один String конструктору ProcessBuilder, передавайте ему List или массив токенов, состоящий из пути команды и ее различных аргументов.

Aaron 20.03.2018 17:47

Вы имеете в виду что-то вроде этого - ProcessBuilder processBuilder = new ProcessBuilder ("C: \\ jboss \\ jboss-eap-6.4 \\ bin \\ jboss-cli.bat‌", "-c", "--controller = 10.10 .10.10 "," --user = user "," --password = pass "," - command =: reload "); .... это тоже не работает и вызывает ту же ошибку

anumeha 20.03.2018 17:50

Да, я имел в виду именно это. Возможно, Java не знает, как выполнить файл .bat, вы можете попробовать добавить cmd и /C в начало списка аргументов, что должно заставить cmd выполнить пакетный сценарий с предоставленными аргументами.

Aaron 20.03.2018 18:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В итоге я использовал

Runtime.getRuntime().exec()

вместо

processBuilder()

Другие вопросы по теме