Команды Cleartool не работают с использованием построителя процессов Java

Я пытаюсь выполнить команды cleartool из пакетного сценария, используя Java ProcessBuilder, но он застревает в команде rebase

[startview command is executed successfully (ERRORLEVEL = 0)]

Когда я пытаюсь использовать Runtime.exec с массивом команд [{"cleartool.exe","<startview command>"}], он говорит

cleartool Ошибка: нераспознанная команда startview

Кто-нибудь знает, как это исправить?


person A K Malik    schedule 07.12.2015    source источник


Ответы (1)


Убедитесь, что cleartool rebase не включает никаких интерактивных шагов (где он останавливался бы и прослушивал ввод на стандартный ввод).

Убедитесь, что ваша CMD по умолчанию имеет в своей переменной окружения %PATH% путь к cleartool.exe.
Затем следуйте этому ответу :

String commandToBeExecuted="cleartool xxx"
Process p = Runtime.getRuntime().exec(new String[]{"cmd", "/c", commandToBeExecuted);

Поскольку cmd.exe заблокирован ("cmd отключен"), OP A K Malik подтверждает, что использование массива не работает:

Process p = Runtime.getRuntime().exec("<rebase command>") 
person VonC    schedule 07.12.2015
comment
Проблема в том, что мы не можем использовать cmd, так как он отключен администратором. Я проверю %PATH% - person A K Malik; 07.12.2015
comment
@AKMalik нет, cmd должен быть доступен, нет причин его отключать. - person VonC; 07.12.2015
comment
Это моя офисная система, и cmd отключен. Во всяком случае, теперь он работает. Проблема была с командой. Спасибо - person A K Malik; 08.12.2015
comment
@AKMalik, в чем проблема? - person VonC; 08.12.2015
comment
Я использовал массив команд, и когда я преобразовал всю команду в один массив, это сработало. [runtime.exec(‹rebase command›) вместо runtime.exec({cleartool.exe,rebase command})] - person A K Malik; 08.12.2015
comment
@AKMalik Хорошо. Я включил ваш вывод в ответ для большей наглядности. - person VonC; 08.12.2015