我有以下问题。 我有一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码将传递回bat。仍然在bat文件中我创建一个名为result的txt文件,然后根据退出代码我写入成功,失败等。 当我在Windows 7中运行该bat文件时,我可以看到正在执行测试,并且在完成结果后,result.txt文件会显示我需要的信息。 但是,当我只是从java代码运行这个相同的bat文件时:
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
答案 0 :(得分:0)
我猜您需要使用exec
的重载版本来指定您的工作目录:
答案 1 :(得分:0)
另一件事是,你应该总是读取进程的InputStream。如果不这样做,则该过程可能会挂起。