Я пытаюсь написать простое приложение, которое принимает аргумент командной строки (это будет файл Powershell ps1) и затем запускает его.Итак, я экспериментировал с рядом различных подходов и, похоже, столкнулся с проблемой.Если я пытаюсь вызвать powershell изнутри java, процесс windows запускается и отображается через проводник процессов, однако powershell никогда не возвращается, он выглядит как-то в виде цикла.Команда, которую я использую:
String command = "powershell -noprofile -noninteractive \"&C:\\new\\tst.ps1\"";
Затем команда выполняется с использованием:
Runtime systemRuntime = Runtime.getRuntime();
Process proc = systemRuntime.exec(command);
В настоящий момент я жестко кодирую местоположение файла ps1, как пыталсяисключить это как проблему.С помощью проводника процессов я вижу зависший процесс powershell и команду, которая ему была передана:
powershell -noprofile -noninteractive "&C:\new\tst.ps1"
, которая при копировании в окно cmd работает для запуска файла tst.ps1.Сам файл невероятно прост в этом примере, и я думаю, что могу исключить его как причину остановки, так как я пытался запустить другие файлы ps1, то же поведение можно увидеть.
Для дальнейшего добавления кпутаница, если я использую код Java, опубликованный выше, и передаю команды powershell вместо имени файла, то он успешно запускается.
Я просмотрел сеть и увидел, что многие люди сталкиваются с такой же проблемой, но никому не кажетсячтобы опубликовать там решение, я надеюсь, что это простое упущение с моей стороны и может быть легко исправлено.
Любые советы / подсказки приветствуются: D
Алан