Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java代码运行bat文件,以在txt文件中获得所需的结果-无法执行:(_Java_Command Line_Batch File_Testcomplete - Fatal编程技术网

从java代码运行bat文件,以在txt文件中获得所需的结果-无法执行:(

从java代码运行bat文件,以在txt文件中获得所需的结果-无法执行:(,java,command-line,batch-file,testcomplete,Java,Command Line,Batch File,Testcomplete,我有以下问题。 我得到了一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码被传递回bat。仍然在bat文件中,我创建了一个名为result的txt文件,然后根据退出代码写入成功、失败等。 当我在Windows7中运行bat文件时,我可以看到测试正在执行,完成后,result.txt文件会显示我需要的信息。 但当我从java代码中运行相同的bat文件时: 进程p1=Runtime.getRuntime.execbatch 测试完成后,文

我有以下问题。 我得到了一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码被传递回bat。仍然在bat文件中,我创建了一个名为result的txt文件,然后根据退出代码写入成功、失败等。 当我在Windows7中运行bat文件时,我可以看到测试正在执行,完成后,result.txt文件会显示我需要的信息。 但当我从java代码中运行相同的bat文件时:

进程p1=Runtime.getRuntime.execbatch

测试完成后,文件不会出现。是否有任何方法使其正常工作?我应该更改什么

脚本代码更不像这样:

@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

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


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

Thx以获取答案。但是现在还有另一个问题。我这样做是为了获取带有测试运行结果的txt文件。现在,从我的代码中,我想等待,直到But运行完成。我通过循环,直到名为result的文件t、 txt是存在的。我想这不是最好的解决方案,但我认为它可以工作。发生的情况是,它会很好地循环,并等待文件存在,但我发送给testcomplete的参数没有到达那里。它们似乎只是来到应用程序中,因为我在测试应用程序中的输入没有填充。当我运行它时,没有在代码中进行任何等待,一切都会发生阿雷克:我不确定我是否理解你的意思,但是如果你原来的问题解决了,那么试着问另一个问题,描述新的问题。