При выполнении пакетного файла из среды выполнения Java собственные команды DOS не выполняются

StackOverflow https://stackoverflow.com/questions/1849254

Вопрос

Когда я запускаю пакетный файл непосредственно в DOS, все выполняется так, как ожидалось.Но когда я выполняю пакетный файл из Java runTime, он будет запускать только команды, которые вызывают файлы jar (т.Е.вызовите JVM).Это делает не запустите любые собственные команды dos.

Одна из проблем заключается в том, что у меня нет консоли, чтобы узнать, почему это происходит.Мне интересно, не проблема ли это с разрешениями, но я понятия не имею.Кто-нибудь там видел это раньше?

Используемый Java-код выглядит примерно так:

Время выполнения.getRuntime().exec("c: argetFolder\myBatch.bat");// (Отредактировано здесь для простоты.)


Пакетный файл выглядит примерно так (обратите внимание, что я упростил его):
Моя смесь.летучая мышь:

вызовите java myJar.jar бла-бла-бла -да
скопировать выходной файл.вывести выходной файл.bak --- НЕТ
mkdir testDir --- НЕТ
вызовите java myJar.jar бла-бла-бла -да
позвони кому-нибудь другому.бат --- НЕТ

Строки ---да работают нормально, и я вижу ожидаемые результаты
В ---никаких линий не не запускаю, но я понятия не имею, почему нет, потому что нет консоли, которая могла бы мне подсказать.

Спасибо за любую помощь!!Майк

Это было полезно?

Решение

Вы должны запустить командный процессор Windows (оболочку), указав ему командный файл в качестве аргумента.

Runtime.getRuntime().exec( "cmd.exe /C c:\\targetFolder\\myBatch.bat" );

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

Тот факт, что выполняются вторые вызовы java, указывает на то, что все ваши строки NO все еще выполняются, но просто не отображают никаких выходных данных.Вы пробовали включить echo на via

@ECHO ВКЛЮЧЕНО

в вашей первой реплике?

Во-вторых, ваша проблема, вероятно, в неправильном рабочем каталоге.Укажите рабочий каталог следующим образом

Runtime.getRuntime().exec("c:\targetFolder\myBatch.bat",null,"c:\targetFolder"); 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top