我正在尝试启动从java启动java应用程序(Android CTS)的脚本,但取决于我如何启动脚本应用程序行为异常。
我试图运行的内容:./cts-tradefed运行cts
从shell启动脚本时,它可以正常运行
启动脚本时:
ProcessBuilder().command(command.split(" ")).directory(ctsToolsPath).inheritIO().start()
应用程序正在运行,但有bug(并非所有设备都经过测试)
启动脚本时:
ProcessBuilder().command(*arrayOf("gnome-terminal", "-e").plus(command)).directory(ctsToolsPath).start().waitFor()
一切正常,但我可以捕捉输出。
当脚本在shel中启动但具有重定向时:
./cts-tradefed run cts > somefile
它也正在处理一个错误。 我已经测试了一百万次,我发现approches与启动之间有什么不同,这会导致应用程序行为不端。
解决方案:
问题在于将CTS作为交互式控制台运行。我能够使用参数commandAndExit
来解决cts-tradered run commandAndExit ...