0

我有以下问题。我有一个运行 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
4

2 回答 2

0

我猜您需要通过使用以下重载版本来指定您的工作目录exec

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

于 2011-07-28T09:38:22.113 回答
0

另一件事是,您应该始终阅读进程的 InputStream。如果您不这样做,该过程可能会挂起。

于 2011-07-28T09:46:05.023 回答