Запустите bat-файл из Java-кода, чтобы получить желаемый результат в TXT-файле - не может сделать :( - PullRequest
0 голосов
/ 28 июля 2011

У меня следующая проблема. Я получил файл bat, который запускает testcomplete test. После того, как тест завершен в testcomplete, приложение закрывается и код завершения передается обратно в летучую мышь. Тем не менее, в bat-файле я создаю txt-файл с именем result, а затем в зависимости от кода выхода пишу в него успешные, неудачные и т. Д. Когда я запускаю этот файл bat в Windows 7, я вижу, что тест выполняется, и после его завершения появляется файл result.txt с необходимой мне информацией. Но когда я просто запускаю этот же файл bat из кода Java:

Process p1 = Runtime.getRuntime().exec(batch);

после завершения теста файл не появляется. Есть ли способ заставить это работать нормально? Что я должен изменить?

Код скрипта более менее похож на:

@ECHO OFF
"...\Bin\TestComplete.exe" "sometext.pjs" /r 
/p:sometext PathToApp="sometext.jnlp" Login=ads Password=ass  /t:"sometext|sometext" /exit 
IF ERRORLEVEL 3 GOTO CannotRun
IF ERRORLEVEL 2 GOTO Errors
IF ERRORLEVEL 1 GOTO Warnings
IF ERRORLEVEL 0 GOTO Success

:CannotRun
ECHO The script cannot be run >> "result.txt"
GOTO End

:Errors
ECHO There are errors >> "result.txt"
GOTO End

:Warnings
ECHO There are warnings >> "result.txt"
GOTO End

:Success
ECHO No errors >> "result.txt"
GOTO End

:End

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Другое дело, что вы всегда должны читать InputStream процесса. Если вы этого не сделаете, процесс может зависнуть.

0 голосов
/ 28 июля 2011

Я думаю, вам нужно указать ваш рабочий каталог, используя перегруженную версию exec:

exec(String command, String[] envp, File dir)

...