当从java运行bat文件时,有没有办法模拟用户输入?
我试图通过junit测试bat文件的工作情况。在大多数情况下,我能够调用并获取响应代码。但是,在这种情况下,用户必须向终端提供手动输入才能继续。是否有任何方法来模拟输入或解决此问题 注意:我无法更改实际代码以接受命令行参数作为输入 我使用process builder调用我的bat文件 示例代码段:-当从java运行bat文件时,有没有办法模拟用户输入?,java,junit,Java,Junit,我试图通过junit测试bat文件的工作情况。在大多数情况下,我能够调用并获取响应代码。但是,在这种情况下,用户必须向终端提供手动输入才能继续。是否有任何方法来模拟输入或解决此问题 注意:我无法更改实际代码以接受命令行参数作为输入 我使用process builder调用我的bat文件 示例代码段:- File dir = new File("E:\\test"); ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "
File dir = new File("E:\\test");
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "Start","test.bat");
pb.directory(dir);
Process p = pb.start();
您需要使用
pb.redirectInput()
获取进程的输入流,然后将用户在进程以交互方式运行时输入的数据写入该流
有关文档和示例代码,请参阅:
也许您应该显示您现有的Java代码,以防需要回答。
System.setIn(…)
和批处理级别的ProcessBuilder.redirectInput
虽然您可以使用java来实现这一点,但也有其他专门编写的解决方案来实现这类功能,例如。